恢复一个300G的oracle数据库
发布时间:2020-12-12 16:04:28 所属栏目:百科 来源:网络整理
导读:最近公司有个项目需要恢复一下一个300G的数据库准备工作:使用Virtual box 创建一个windos 2003 的服务器 上面安装了oracle11g 1.首先需要查看创建virtual box的vdi的大小默认400G,300G备份文件至少需要1T的空间需要修改vdi的空间大小 我进入了Oracle VM Vi
最近公司有个项目需要恢复一下一个300G的数据库 准备工作:使用Virtual box 创建一个windos 2003 的服务器 上面安装了oracle11g 1.首先需要查看创建virtual box的vdi的大小默认400G,300G备份文件至少需要1T的空间需要修改vdi的空间大小 我进入了Oracle VM VirtualBox安装目录:D:Program FilesOracleVirtualBox, VBoxManage list hdds,回车,查看需要扩容的虚拟硬盘的UUID, 输入命令:VBoxManage modifyhd be05c3ee-3f64-4564-a3e5-7a00bfc4e233 --resize 102400,102400代表要把虚拟硬盘改成多少M。 注意,在调整硬盘之前,一定要先关闭该虚拟机,要扩容的虚拟硬盘在以前创建时应该是动态增长的 VBoxManage modifyhd 4264aafa-a33c-4d25-9a97-f3ca24e8f72b --resize 2048576 2.出现了字符集问题, 原因在于我们的vdi里的oralcle字符集为select userenv('language') from dual; simplified chinese_china.al32utf8应该设置成为 MERICAN _ AMERICA. ZHS16GBK ORA-12899:valuetoolargeforcolumn"JRGAZX"."DTLMB"."CC"(actual:66,maximum:50) 初步断定是字符集问题,中文在UTF-8里占3个字节,ZHS16GBK里占2个字节,而源dmp文件字符集是ZHS16GBK的库到出来的, 现在要导入到目标字符集为UFT-8的库里。 修改数据库字符集为:ZHS16GBK 修改: sqlplus /nolog SQL>conn / as sysdba; SQL>SHUTDOWN IMMEDIATE; SQL>STARTUP MOUNT; SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION; SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0; SQL>ALTER DATABASE OPEN; SQL> ALTER DATABASE CHARACTER SET ZHS16GBK; ALTER DATABASE CHARACTER SET ZHS16GBK *ERROR at line 1: ORA-12712: new character set must be a superset ofold character set 报字符集不兼容,此时下INTERNAL_USE指令不对字符集超集进行检查: 可以执行下一步 跳转错误操作 SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK; SQL>SHUTDOWN IMMEDIATE SQL>STARTUP 再次用imp导入,就没有问题了。 数据泵导入数据步骤: cmd 登录 sqlplus / as sysdba 1. 创建表空间 CREATE TABLESPACE NNC_DATA01 DATAFILE 'C:oraapporadataorclnnc_data01.dbf' SIZE 300M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K; CREATE TABLESPACE NNC_INDEX01 DATAFILE 'C:oraapporadataorclnnc_index01.dbf' SIZE 300M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K; CREATE TABLESPACE NNC_DATA02 DATAFILE 'C:oraapporadataorclnnc_data02.dbf' SIZE 300M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K; CREATE TABLESPACE NNC_INDEX02 DATAFILE 'C:oraapporadataorclnnc_index02.dbf' SIZE 300M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K; CREATE TABLESPACE NNC_DATA03 DATAFILE 'C:oraapporadataorclnnc_data03.dbf' SIZE 300M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K; CREATE TABLESPACE NNC_INDEX03 DATAFILE 'C:oraapporadataorclnnc_index03.dbf' SIZE 300M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K; 2. 创建用户 CREATE USER HCM IDENTIFIED BY HCM DEFAULT TABLESPACE NNC_DATA01 TEMPORARY TABLESPACE temp; GRANT connect,dba to HCM; 3. 创建目录 并赋权限 Create directory ncdir1 as 'C:Temp'; Grant read,write on directory ncdir1 to HCM; 4. 导入,并修改用户密码 impdpHCM/HCM DIRECTORY=ncdir1 DUMPFILE=CTGHR20160711PATCH.DMP FULL=y; alter userWATERNCDB identified by 1; 指定用户映射导入可能不需要修改密码 impdp HCM/HCM@orcl directory=ncdir1 dumpfile=CTGHR201608031628.DMP REMAP_SCHEMA=CTGHR:HCM (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |