暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

将 Oracle 数据库从 11.2.0.4 升级到 12.1.0.2

原创 CiciLee 2022-08-27
615

在本文中,我将讨论如何将 Oracle 数据库从 11.2.0.4 升级到 12.1.0.2。

当前 ORACLE_HOME :

/u01/app/oracle/product/11.2.0/dbhome_1

新的 ORACLE_HOME :

/u02/app/oracle/product/12.1.0.2/db_1

数据库名称:TESTDB

先决条件

1.我们创建目录并授予权限。

$ mkdir -p /u02/app/oracle/product/12.1.0.2/db_1
$ chown -R oracle:oinstall /u02
$ chmod -R 775 /u02

2.我们清空回收站。

SQL> PURGE DBA_RECYCLEBIN;

3.我们编译无效对象。

SQL> @?/rdbms/admin/utlrp.sql

手动升级

1.我们复制Preupgrade工具的脚本文件。

$ mkdir -p /tmp/upgrade
$ cp /u02/app/oracle/product/12.1.0.2/db_1/rdbms/admin/preupgrd.sql /tmp/upgrade
$ cp /u02/app/oracle/product/12.1.0.2/db_1/rdbms/admin/utluppkg.sql /tmp/upgrade
  1. 我们运行 Preupgrade 工具。
SQL> @/tmp/upgrade/preupgrd.sql
ACTIONS REQUIRED:
1. Review results of the pre-upgrade checks:
 /tmp/upgrade/preupgrade.log
2. Execute in the SOURCE environment BEFORE upgrade:
 /tmp/upgrade/preupgrade_fixups.sql
3. Execute in the NEW environment AFTER upgrade:
 /tmp/upgrade/postupgrade_fixups.sql
$ cd /tmp/upgrade
$ ls -ltr
-rw-r--r-- 1 oracle oinstall 8049 Sep 10 11:36 preupgrade.log
-rw-r--r-- 1 oracle oinstall 3567 Sep 10 11:36 preupgrade_fixups.sql
-rw-r--r-- 1 oracle oinstall 2656 Sep 10 11:36 postupgrade_fixups.sql
  1. 我们运行 preupgrade_fixups.sql 并检查更改。
SQL> @/tmp/upgrade/preupgrade_fixups.sql
  1. 运行 preupgrade_fixup.sql 后的建议更改如下。
ALTER SYSTEM SET PROCESSES=300 SCOPE=SPFILE
- Stop EM Database Control:
    $> emctl stop dbconsole
cp /u02/app/oracle/product/12.1.0.2/db_1/rdbms/admin/emremove.sql $ORACLE_HOME/rdbms/admin/
 
   - Connect to the Database using the SYS account AS SYSDBA:
   SET ECHO ON;
   SET SERVEROUTPUT ON;
   @emremove.sql
   
ORACLE_HOME/olap/admin/catnoamd.sql script before or 
     after the upgrade.
  
 EXECUTE dbms_stats.gather_dictionary_stats;
  1. 我们检查 dbms_scheduler 作业并禁用启用的作业。
SQL> set pagesize 2000
SQL> set lines 2000
SQL> set long 99999
SQL> select owner,JOB_NAME,ENABLED,state from dba_scheduler_jobs;
SQL> execute dbms_scheduler.disable('RLM$EVTCLEANUP');

6.我们检查system和sys的默认表空间。 两者必须相同。

SQL> SELECT username, default_tablespace
FROM dba_users
WHERE username in ('SYS','SYSTEM');
USERNAME                      |DEFAULT_TABLESPACE
------------------------------|------------------------------
SYSTEM                        |SYSTEM
SYS                           |SYSTEM

  1. 我们停止监听器并关闭数据库。
$ lsnrctl stop listener
SQL> shu immediate
  1. 设置新的 ORACLE HOME 路径。
$ export ORACLE_HOME=/u02/app/oracle/product/12.1.0.2/db_1
$ export PATH=$ORACLE_HOME/bin:$PATH
$ export ORACLE_BASE=/u02/app/oracle/
  1. 将11G $ORACLE_HOME/dbs下的spfile和密码文件复制到12C $ORACLE_HOME/dbs。
$ cp /u01/app/oracle/product/11.2.0/dbhome_1/dbs/spfileTESTDB.ora /u02/app/oracle/product/12.1.0.2/db_1/dbs/
$ cp /u01/app/oracle/product/11.2.0/dbhome_1/dbs/orapwTESTDB /u02/app/oracle/product/12.1.0.2/db_1/dbs/

10.我们以升级模式启动数据库。

$ cd $ORACLE_HOME/rdbms/admin
$ pwd
/u02/app/oracle/product/12.1.0.2/db_1/rdbms/admin
$ sqlplus “/ as sysdba”
SQL> startup UPGRADE
SQL> exit
  1. 我们以 4 次并行运行 catupgrd 脚本文件。
$cd $ORACLE_HOME/rdbms/admin
$ORACLE_HOME/perl/bin/perl catctl.pl -n 4-l $ORACLE_HOME/diagnostics catupgrd.sql
  1. 我们遵循日志。
$ cd /uv1172/apps/oracle/product/12.1.0.2/diagnostics
$ tail -100f catupgrd0.log
  1. 我们打开数据库并运行升级后工具。
$ sqlplus "/as sysdba"
SQL> startup
SQL> @utlu121s.sql
  1. 我们运行 catuppst.sql。
SQL>@$ORACLE_HOME/rdbms/admin/catuppst.sql
  1. 我们运行 postupgrade_fixups.sql 并执行建议的操作。
SQL>@$ORACLE_HOME/rdbms/admin/catuppst.sql
-- The following item is probably included in your postupgrade_fixups.sql script.
EXECUTE DBMS_STATS.gather_fixed_objects_stats;
-- Recompile invalid objects.
@utlrp.sql
-- Check for newly invalid objects.
@utluiobj.sql
-- Run again to check the final outcome of the upgrade.
@utlu121s.sql
  1. 我们检查升级后的数据库。
 sqlplus / as sysdba
SQL> SELECT name, open_mode FROM v$database;
NAME      OPEN_MODE
--------- --------------------
TESTDB    READ WRITE

正如我们在上面看到的,升级后数据库在 READ/WRITE 模式下可用。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论