centos7.2 oracle10g 如何修改sid实例名

前端之家收集整理的这篇文章主要介绍了centos7.2 oracle10g 如何修改sid实例名前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_404_0@主机名改变后需要更改改下面的文件

@H_404_0@1.监听里的host需要更改如下:

@H_404_0@/u01/app/oracle/product/10.2.0/db_1/network/admin

@H_404_0@修改如下文件主机名

@H_404_0@sed –i 's/ora10/oracle10/g'/u01/app/oracle/product/10.2.0/db_1/network/admin/ listener.ora

@H_404_0@[oracle@host-192-168-246-161 admin]$ cat listener.ora

@H_404_0@# listener.ora Network Configuration File:/u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora

@H_404_0@# Generated by Oracle configuration tools.

@H_404_0@SID_LIST_LISTENER =

@H_404_0@ (SID_LIST =

@H_404_0@ (SID_DESC =

@H_404_0@ (SID_NAME =PLSExtProc)

@H_404_0@ (ORACLE_HOME =/u01/app/oracle/product/10.2.0/db_1)

@H_404_0@ (PROGRAM = extproc)

@H_404_0@ )

@H_404_0@ )

@H_404_0@LISTENER =

@H_404_0@ (DESCRIPTION_LIST =

@H_404_0@ (DESCRIPTION =

@H_404_0@ (ADDRESS =(PROTOCOL = TCP)(HOST = oracle10)(PORT= 1521))

@H_404_0@ (ADDRESS =(PROTOCOL = IPC)(KEY = EXTPROC0))

@H_404_0@ )

@H_404_0@ )

@H_404_0@2.修改主机名

@H_404_0@hostnamectl set-hostnameoracle

@H_404_0@vi /etc/hosts

@H_404_0@192.168.246.161oracle10

@H_404_0@修改实例名sid

@H_404_0@1.检查原来数据库

@H_404_0@[oracle@oracle admin]$ echo $ORACLE_SID

@H_404_0@ora10

@H_404_0@[oracle@oracle admin]$ sqlplus / as sysdba

@H_404_0@sql*Plus: Release 10.2.0.1.0 - Production on Fri Sep 8 11:04:152017

@H_404_0@Copyright (c) 1982,2005,Oracle. All rights reserved.

@H_404_0@sql> select instance from v$thread;

@H_404_0@INSTANCE

@H_404_0@--------------------------------

@H_404_0@ora10

@H_404_0@2.修改Oracle用户的ORACLE_SID环境变量,如由orc10修改为oracle10

@H_404_0@[oracle@oracle admin]$ cat ~/.bash_profile | grep -i sid

@H_404_0@export ORACLE_SID=ora10

@H_404_0@[oracle@oracle admin]$ sed -i 's/ora10/oracle10/g' ~/.bash_profile

@H_404_0@[oracle@oracle admin]$ cat ~/.bash_profile | grep -i sid

@H_404_0@export ORACLE_SID=oracle10

@H_404_0@3.使新修改的ORACLE_SID环境变量生效

@H_404_0@[oracle@oracle dbs]$ source ~/.bash_profile

@H_404_0@[oracle@oracle dbs]$ echo $ORACLE_SID

@H_404_0@oracle10

@H_404_0@4.修改/etc/oratab文件,将sid名由旧的修改为新的,如从orc10修改为oracle10

@H_404_0@[oracle@oracle admin]$ vi /etc/oratab

@H_404_0@oracle10:/u01/app/oracle/product/10.2.0/db_1:Y

@H_404_0@[oracle@oracle admin]$cd $ORACLE_HOME/dbs

@H_404_0@[oracle@oracle dbs]$ pwd

@H_404_0@/u01/app/oracle/product/10.2.0/db_1/dbs

@H_404_0@5.将所有文件名中包含原来的sid修改为对应的新sid的如我对如下文件修改为其后对应的文件

hc_orc10.dat->hc_oracl10.dat

lkORCL->lkORACLE10

orapworcl->orapworacle10

snapcf_orcl.f->snapcf_oracle10.f

spfileorcl.ora->spfileoracle10.ora

@H_404_0@mv hc_orc10.dat hc_oracl10.dat

@H_404_0@mv lkORCL lkORACLE10

@H_404_0@mv orapworcl orapworacle10

@H_404_0@mv snapcf_orcl.f snapcf_oracle10.f

@H_404_0@mv spfileorcl.ora spfileoracle10.ora

@H_404_0@[oracle@oracle dbs]$orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=oracle entries=5force=y

@H_404_0@[oracle@oracle dbs]$ ls -lrt orapw*

@H_404_0@-rw-r----- 1 oracle oinstall 2048 Sep 8 11:36 orapworacle10

@H_404_0@[oracle@oracle ora10]$ cp$ORACLE_BASE/admin/ora10/pfile/init.ora.852017173323 /u01/app/oracle/product/10.2.0/db_1/dbs/initoracle10.ora

@H_404_0@[oracle@oracle dbs]$ sqlplus / as sysdba

@H_404_0@sql*Plus: Release 10.2.0.1.0 - Production on Fri Sep 8 11:44:592017

@H_404_0@Copyright (c) 1982,Oracle. All rights reserved.

@H_404_0@Connected to an idle instance.

@H_404_0@sql> startup

@H_404_0@ORACLE instance started.

@H_404_0@Total System Global Area 4966055936 bytes

@H_404_0@Fixed Size2027544 bytes

@H_404_0@Variable Size889196520 bytes

@H_404_0@Database Buffers4060086272 bytes

@H_404_0@Redo Buffers14745600 bytes

@H_404_0@Database mounted.

@H_404_0@Database opened.

@H_404_0@sql>

@H_404_0@检查数据库实例名

@H_404_0@1. 通过如下语句检查数据库实例名,发现实例名已经由orcl变成oracle10

idle> select instance from v$thread;

INSTANCE
--------------------------------------------------------------------------------
oracle10

@H_404_0@2.修改数据库名(dbname)

@H_404_0@虽然已经修改过了实例名(sid),但是数据库名称(dbname还是原来的名称orcl)

@H_404_0@dle> conn / as sysdba
Connected.
sql> show parameter name

@H_404_0@NAME TYPE VALUE

@H_404_0@------------------------------------ -----------------------------------------

@H_404_0@db_file_name_convertstring

@H_404_0@db_name string ora10

@H_404_0@db_unique_name string ora10

@H_404_0@global_names boolean FALSE

@H_404_0@instance_name string oracle10

@H_404_0@lock_name_space string

@H_404_0@log_file_name_convert string

@H_404_0@service_names string ora10

@H_404_0@可以通过如下步骤修改数据库名(dbname

@H_404_0@1. 首先切换一下在线日志,使数据库做checkpoint

sys@ORCL> alter system archive log current;

System altered.

@H_404_0@2. 生成重建控制文件的脚本

sys@ORCL> alter database backup controlfile to trace resetlogs;

Database altered.

@H_404_0@3. 关闭数据库,需要干净关闭,不能shutdownabort

sys@ORCL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.

sql> exit

Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production

With the Partitioning,OLAP and Data Mining options

@H_404_0@4.进入$ORACLE_BASE/admin/<sid>/udump目录中,找到最新生成的trc文件,这就是重建控制文件的脚本

@H_404_0@cd/u01/app/oracle/admin/ora10/udump

@H_404_0@

@H_404_0@5. 将找到的trc文件复制一份,并命名为ccf.sql

[oracle@oracle udump]$ cp oracle10_ora_2768.trc ccf.sql

@H_404_0@查找STARTUPNOMOUNT语句,将这一行上面的所有行都删除
查找所有以--开始的行,把这些行删除
查找所有的orcl修改为cnhtm,所有的ORCL修改为CNHTM
找到CREATE CONTROLFILEREUSE DATABASE...语句,将其中的REUSE修改为SET
找到RECOVER DATABASE USINGBACKUP CONTROLFILE语句,将其用双横线(--)注释掉

@H_404_0@6.修改实例名称和目录

@H_404_0@[oracle@oracle ~]$ sed -i 's/ora10/oracle10/g'/u01/app/oracle/admin/ora10/udump/ccf.sql

@H_404_0@[oracle@oracle ~]$ sed -i 's/ORA10/ORACLE10/g'/u01/app/oracle/admin/ora10/udump/ccf.sql

@H_404_0@[oracle@oracle ~]$ mv /u01/app/oracle/oradata/ora10/u01/app/oracle/oradata/oracle10

@H_404_0@[oracle@oracle ~]$ vi/u01/app/oracle/admin/oracle10/udump/ccf.sql

@H_404_0@STARTUP NOMOUNT

@H_404_0@CREATE CONTROLFILE SET DATABASE "ORACLE10"RESETLOGS ARCHIVELOG

@H_404_0@ MAXLOGFILES 16

@H_404_0@ MAXLOGMEMBERS 3

@H_404_0@ MAXDATAFILES 100

@H_404_0@ MAXINSTANCES 8

@H_404_0@ MAXLOGHISTORY 292

@H_404_0@LOGFILE

@H_404_0@ GROUP 1'/u01/app/oracle/oradata/oracle10/redo01.log' SIZE 50M,

@H_404_0@ GROUP 2'/u01/app/oracle/oradata/oracle10/redo02.log' SIZE 50M,

@H_404_0@ GROUP 3'/u01/app/oracle/oradata/oracle10/redo03.log' SIZE 50M

@H_404_0@DATAFILE

@H_404_0@ '/u01/app/oracle/oradata/oracle10/system01.dbf',

@H_404_0@'/u01/app/oracle/oradata/oracle10/undotbs01.dbf',

@H_404_0@'/u01/app/oracle/oradata/oracle10/sysaux01.dbf',

@H_404_0@'/u01/app/oracle/oradata/oracle10/users01.dbf',

@H_404_0@'/u01/app/oracle/oradata/oracle10/example01.dbf'

@H_404_0@CHARACTER SET ZHS16GBK

@H_404_0@;

@H_404_0@--RECOVER DATABASE USINGBACKUP CONTROLFILE

@H_404_0@ALTER DATABASE OPEN RESETLOGS;

@H_404_0@ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/app/oracle/oradata/oracle10/temp01.dbf'

@H_404_0@ SIZE 20971520 REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;

@H_404_0@7.如果归档日志目录名中包含sid,那么修改归档目录名

@H_404_0@归档目录使用的是flash_recovery_area,所以需要将这个目录中的ORCL目录重命名为ORACLE10

@H_404_0@[oracle@oracle ~]$ mv /u01/app/oracle/admin/ora10/u01/app/oracle/admin/oracle10

@H_404_0@mv /u01/app/oracle/flash_recovery_area/ORA10 /u01/app/oracle/flash_recovery_area/ORACLE10

@H_404_0@[oracle@oracle dbs]$ sed -i 's/ora10/oracle10/g'/u01/app/oracle/product/10.2.0/db_1/dbs/initoracle10.ora

@H_404_0@8.删除之前的控制文件

@H_404_0@rm -rf /u01/app/oracle/oradata/oracle10/control*

@H_404_0@9. 加载修改好的ccf.sql

isql> @/u01/app/oracle/admin/oracle10/udump/ccf.sql

ORACLE instance started.

Total System Global Area 4966055936 bytes

Fixed Size 2027544 bytes

Variable Size 889196520 bytes

Database Buffers 4060086272 bytes

Redo Buffers 14745600 bytes

Control file created.

Database altered.

Tablespace altered.

@H_404_0@10. 检查数据库状态

sql> conn / as sysdba

Connected.

sql> select open_mode from v$database;

OPEN_MODE

----------

READ WRITE

sql> show parameter name

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

db_file_name_convert string

db_name string oracle10

db_unique_name string oracle10

global_names boolean FALSE

instance_name string oracle10

lock_name_space string

log_file_name_convert string

service_names string oracle10

发现数据库名(db_name)已经修改为oracle10

猜你在找的CentOS相关文章