拓扑园

  • Oracle性能优化
  • Oracle项目案例
    • Oracle近期项目案例(目录)
    • Oracle实战问题解析(目录)
    • Oracle数据库名变更流程(2种方式)
    • Oracle数据库目录更换流程(使用Oracle的clone工具)
    • Oracle数据库迁移方案(目录)
    • 标准化文档系列
  • 技术研究-密保
    • FG-MySQL
    • FG-Docker/K8S
    • FG-PostgreSQL
    • FG-ORACLE_BBED
    • FG-ORACLE
    • FG-Elasticsearch(ES)+ELK
    • Oracle-19C-OCP
    • WERN_ORACLE培训
    • redis数据库
    • Nginx培训学习系列
  • 图灵小队
    • MySQL8.0/Oracle/Memcached/Redis等安装配置于RHEL/OL6/7/8.X系列-运行环境最优配置
    • PG安装配置于RHEL/9X系列-运行环境最优配置
    • 自动维护任务详解-开启、关闭信息统计收集(统计信息)
    • 图灵小队-Oracle存储过程导出表的明细_UTL_FILE(文章)
    • 图灵小队-Oracle数据库删除/卸载操作指南(文章)
    • 图灵小队-Oracle常用性能查询SQL语句(文章)
    • 图灵小队-Oracle数据库上线前检查(文章)
    • 图灵小队-Oracle常用SQL语句(文章)
    • 图灵小队-Oracle脚本合集(文章)
    • 图灵小队-Oracle技巧记录(文章)
    • LLL的Oracle培训(目录)
    • LLL的docker培训(目录)
    • 标准化文档系列(目录)
    • Oracle/MySQl等面试题
    • 图灵小队
  • Oracle
    • Oracle
    • ADG
    • RAC
    • ASM
    • EXPDP/IMPDP
    • 工厂数据导入导出系列
    • OGG
    • RMAN
  • 云计算
    • 云计算
    • docker
    • kubernetes
  • Linux
    • Linux
    • PHP
    • Nginx
    • haproxy
    • mail
    • 网站
    • 域名
    • 网址收藏
  • 数据中心
    • 数据中心
    • EBS数据文件库容
    • VMware虚拟化
    • mysql
    • EBS系列
    • 大数据
    • SVN
    • zabbix
    • SAP
    • 备份相关
    • FC交换机
    • SVN
  • 其他
    • 外研英语4年级下册-听力
    • 影视系列
    • 如何使用iTunes软件通过抓包下载旧版本的ios的app
Oracle数据库恢复专家团队:TEL:18562510581(微信同号);QQ:284833194;QQ群:496333360
天高任鸟飞
  1. 首页
  2. Oracle项目案例
  3. 正文

Oracle数据库名变更流程(2种方式)

2023年5月4日 722点热度 0人点赞 0条评论

目录

  • 一、需求
  • 二、实现方式(两种方式)
    • 1、纯手动更改
    • 2、半自动方式—借助Oracle工具nid
  • 三、纯手动流程(mesorcl——>mdborcl)
    • 1、更改环境变量
    • 2、更改/etc/oratab
    • 3、导出控制文件
    • 4、修改参数文件
    • 5、更改文件目录
    • 6、重建控制文件
    • 7、关闭数据库并重启测试
    • 8、启动监听
  • 四、方法2:借助Oracle nid工具(mdborcl——>mesorcl)
    • 1、关闭数据库,并启动到mount
    • 2、运行nid命令
    • 3、更改数据库参数
    • 4、更改环境变量
    • 5、创建spfile并重启数据库
    • 6、resetlogs打开数据库
    • 7、检查数据库
    • 8、更改/etc/oratab
    • 9、查看日志记录

一、需求

数据库名为mesorcl,因业务需求,需要更改名为mdborcl。

注意:没事不要更改数据库名,因为要重建控制文件且使用resetlogs方式。

!!!更改之前要做好数据库全备。

二、实现方式(两种方式)

参数文件中的db_name只是数据库名,而不是实例名;实例名为instance_name=oracle_sid。

1、纯手动更改

--更改环境变量
--导出控制文件(resetlogs)
--修改参数文件
--更改文件目录
--重建控制文件(resetlogs)
--打开数据库(resetlogs)
--创建临时文件
--重启数据库
--启动监听

2、半自动方式—借助Oracle工具nid

--关闭数据库,并启动到mount
--运行nid命令
--更改数据库参数
--更改环境变量
--创建spfile并重启数据库
--resetlogs打开数据库
--检查数据库
--查看日志记录

三、纯手动流程(mesorcl——>mdborcl)

1、更改环境变量

$vi ~/.bash_profile 
export ORACLE_UNQNAME=mdborcl
export ORACLE_SID=mdborcl;
source ~/.bash_profile

2、更改/etc/oratab

mdborcl:/oracle/app/oracle/product/11.2.0/db_1:N

3、导出控制文件

注意:如果要更改db_name,控制文件重建必须使用resetlogs;

SQL> alter database backup controlfile to trace as '/oracle/controlfile.trc' resetlogs;

4、修改参数文件

(1)查看旧的spfile:

strings $ORACLE_HOME/dbs/spfilemesorcl.ora

(2)复制spfile到新的pfile.ora:

vi /oracle/pfile.ora
*.audit_file_dest='/oracle/app/oracle/admin/mdborcl/adump'
*.audit_trail='db'
*.compatible='11.2.0.4'
*.control_files='/oracle/app/oracle/oradata/mdborcl/control01.ctl','/oracle/app/oracle/oradata/mdborcl/control02.ctl'#Restore Controlfile
*.db_16k_cache_size=0
*.db_block_size=8192
*.db_domain=''
*.db_name='mesorcl'
*.db_recovery_file_dest_size=32212254720
*.db_recovery_file_dest='/oracle/archivelog'
*.diagnostic_dest='/oracle/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=mesorclXDB)'
*.open_cursors=300
*.pga_aggregate_target=1653604352
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=4960813056
*.undo_tablespace='UNDOTBS1'

(3)创建spfile

SQL>create spfile from pfile='/oracle/pfile.ora';

(4)关闭数据库

SQL> shutdown immediate

5、更改文件目录

(因为包含mesorcl路径,如果数据在其他路径,只要包含mesorcl都要更改)

如果数据文件没有在mesorcl路径,则无需更改;其实数据文件路径保持也可以。只是不便于管理而已。

(1)查找所有mesorcl目录

$find /oracle -name mesorcl
/oracle/app/oracle/diag/rdbms/mesorcl
/oracle/app/oracle/diag/rdbms/mesorcl/mesorcl
/oracle/app/oracle/cfgtoollogs/dbca/mesorcl
/oracle/app/oracle/admin/mesorcl
/oracle/app/oracle/oradata/mesorcl

$find /oracle -name MESORCL
/u01/archivelog/MESORCL

(2)修改mesorcl目录为mdborcl

mv /oracle/app/oracle/diag/rdbms/mesorcl/ /oracle/app/oracle/diag/rdbms/mdborcl/
mv /oracle/app/oracle/diag/rdbms/mdborcl/mesorcl /oracle/app/oracle/diag/rdbms/mdborcl/mdborcl
mv /oracle/app/oracle/cfgtoollogs/dbca/mesorcl /oracle/app/oracle/cfgtoollogs/dbca/mdborcl
mv /oracle/app/oracle/admin/mesorcl /oracle/app/oracle/admin/mdborcl
mv /oracle/app/oracle/oradata/mesorcl /oracle/app/oracle/oradata/mdborcl
mv /oracle/archivelog/MESORCL /oracle/archivelog/MDBORCL

6、重建控制文件

(1)重建控制文件前,先删除原控制文件

rm -rf /oracle/app/oracle/oradata/mdborcl/control01.ctl
rm -rf /oracle/app/oracle/oradata/mdborcl/control02.ctl

(2)修改控制文件并重建

更改后(只把mesorcl更改为mdborcl)

注意:此处创建控制文件的参数不要使用reuse,而是要改为set

STARTUP NOMOUNT
CREATE CONTROLFILE  SET DATABASE "MDBORCL" RESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '/oracle/app/oracle/oradata/mdborcl/redo01.log' SIZE 200M BLOCKSIZE 512,
GROUP 2 '/oracle/app/oracle/oradata/mdborcl/redo02.log' SIZE 200M BLOCKSIZE 512,
GROUP 3 '/oracle/app/oracle/oradata/mdborcl/redo03.log' SIZE 200M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
'/oracle/app/oracle/oradata/mdborcl/system01.dbf',
'/oracle/app/oracle/oradata/mdborcl/sysaux01.dbf',
'/oracle/app/oracle/oradata/mdborcl/undotbs01.dbf',
'/oracle/app/oracle/oradata/mdborcl/user01.dbf',
'/oracle/app/oracle/oradata/mdborcl/example01.dbf',
'/oracle/app/oracle/oradata/mdborcl/test1_1.dbf',
'/oracle/app/oracle/oradata/mdborcl/test2_1.dbf',
'/oracle/app/oracle/oradata/mdborcl/test_tbsp01.dbf',
'/oracle/app/oracle/oradata/mdborcl/test03.dbf',
'/oracle/app/oracle/oradata/mdborcl/test04.dbf',
'/oracle/app/oracle/oradata/mdborcl/test06.dbf',
'/oracle/app/oracle/oradata/mdborcl/test07.dbf',
'/oracle/app/oracle/oradata/mdborcl/test05.dbf',
'/oracle/app/oracle/oradata/mdborcl/test08.dbf',
'/oracle/app/oracle/oradata/mdborcl/test10.dbf',
'/oracle/app/oracle/oradata/mdborcl/test082.dbf',
'/oracle/app/oracle/oradata/mdborcl/test11_big.dbf'
CHARACTER SET AL32UTF8
;

(3)恢复数据

-- Commands to re-create incarnation table
-- Below log names MUST be changed to existing filenames on
-- disk. Any one log file from each branch can be used to
-- re-create incarnation records.
-- ALTER DATABASE REGISTER LOGFILE '/oracle/archivelog/MDBORCL/archivelog/2023_05_05/o1_mf_1_1_%u_.arc';
-- ALTER DATABASE REGISTER LOGFILE '/oracle/archivelog/MDBORCL/archivelog/2023_05_05/o1_mf_1_1_%u_.arc';
-- Recovery is required if any of the datafiles are restored backups,
-- or if the last shutdown was not normal or immediate.
RECOVER DATABASE USING BACKUP CONTROLFILE;

(4)打开数据库(resetlogs)

-- Database can now be opened zeroing the online logs.
ALTER DATABASE OPEN RESETLOGS;

(5)创建临时文件

-- Commands to add tempfiles to temporary tablespaces.
-- Online tempfiles have complete space information.
-- Other tempfiles may require adjustment.
ALTER TABLESPACE TEMP ADD TEMPFILE '/oracle/app/oracle/oradata/mdborcl/temp01.dbf'
SIZE 13631488 REUSE AUTOEXTEND OFF;
-- End of tempfile additions.
--

7、关闭数据库并重启测试

shutdown immediate;
startup

8、启动监听

lsnrctl start

四、方法2:借助Oracle nid工具(mdborcl——>mesorcl)

1、关闭数据库,并启动到mount

shutdown immediate;
startup mount;

2、运行nid命令

dbname=mesorcl为更改的新数据库名

SQL> host nid target=sys/oracle dbname=mesorcl logfile=/oracle/transfer.log ;

3、更改数据库参数

SQL>create pfile='/oracle/pfile.ora' from spfile;
*.db_name='mesorcl'

4、更改环境变量

vi ~/.bash_profile
export ORACLE_UNQNAME=mesorcl
export ORACLE_SID=mesorcl;

source ~/.bash_profile

5、创建spfile并重启数据库

create spfile from pfile='/oracle/pfile.ora';

6、resetlogs打开数据库

startup mount;
alter database open resetlogs;

7、检查数据库

(1)数据文件位置没有变化

(理论上也无需更改此处,因为一般数据文件会单独存放到其他位置)

但是数据文件头中的db_name进行了修改,同时dbid也做了更改。

(2)跟踪文件等相关位置进行了更新

/oracle/app/oracle/diag/rdbms

(3)临时文件无需重新创建,已经自行做了修改

8、更改/etc/oratab

mesorcl:/oracle/app/oracle/product/11.2.0/db_1:N

9、查看日志记录

less /oracle/transfer.log

标签: 暂无
最后更新:2023年5月6日

admin

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

COPYRIGHT © 2022 拓扑园. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

鲁ICP备2021020523号

鲁ICP备2021020523号