调整时间:2021-10-01
---------------------------------------------------------------------------------------------
一.确认并记录准备恢复数据的数据库实例信息
新建的(准备恢复数据的)实例名称变量,可以通过替换的方式,进行调整
新建的(准备恢复数据的)数据库实例说明:
新建的(准备恢复数据的)实例名 : mdfdata13
用户名 : mdfuser
密码 : mdfPass_1234#
-----------------------------------------------------------------------------------------------
二.创建一个新的oracle实例
2.1创建nc-oracle的数据库实例
**c:usersAdministartor>---- dbca
**或者:开始---所有程序---Oracle - OraDb11g_home1---配置和移植工具---Database Configuration Assistant
--会弹出要创建数据库的名称
**全局数据库名和SID,都输入: mdfdata13
--会弹出要创建数据库的用户的口令(用户有SYS/SYSTEM/DBSNMP/SYSYMAN)
**选择--所有账户使用同一管理口令--这里输入密码为: mdfPass_1234#
--第11步:
记录下目标目录: 比如:c:ppdministratordminmdfdata13csripts
--系统会开始创建指定的数据库实例--创建完成
2.2查看创建新实例的重要目录
--C:ppAdministratororadatamdfdata13 ---准备创建表空间的目录
--C:ppAdministratordminmdfdata13dpdump ---默认是虚拟目录的存放位置
-----------------------------------------------------------------------------------------------
三.查看新建数据库是否能正常连接
3.1.---指定连接的实例------------------ c:usersAdministartor>----
set oracle_sid = mdfdata13
[变量1--新建的(准备恢复数据的)实例名:mdfdata13 ]
3.2.---查看是否连接了oracle数据库------ c:usersAdministartor>----
sqlplus /@mdfdata13 as sysdba
[变量1--新建的(准备恢复数据的)实例名:mdfdata13]
3.3.---查看目前连接的实例 SQL>-------
select instance_name from v$instance;
或者到服务里看:OracleService****----星号代表正在运行的实例的名字
-----------------------------------------------------------------------------------------------
四.创建表空间
--说明在C:ppAdministratororadatamdfdata13路径下,创建表空间
--说明:这里的重要变量为: mdfdata13
SQL>----
CREATE TABLESPACE NNC_DATA01 DATAFILE 'C:ppAdministratororadatamdfdata13
nc_data0101.dbf' SIZE 500M
AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K;
CREATE TABLESPACE NNC_DATA02 DATAFILE 'C:ppAdministratororadatamdfdata13
nc_data0201.dbf' SIZE 300M
AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K;
CREATE TABLESPACE NNC_DATA03 DATAFILE 'C:ppAdministratororadatamdfdata13
nc_data0301.dbf' SIZE 500M
AUTOEXTEND ON NEXT 100M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 512K;
CREATE TABLESPACE NNC_INDEX01 DATAFILE 'C:ppAdministratororadatamdfdata13
nc_index0101.dbf' SIZE 500M
AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K;
CREATE TABLESPACE NNC_INDEX02 DATAFILE 'C:ppAdministratororadatamdfdata13
nc_index0201.dbf' SIZE 300M
AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K;
CREATE TABLESPACE NNC_INDEX03 DATAFILE 'C:ppAdministratororadatamdfdata13
nc_index0301.dbf' SIZE 500M
AUTOEXTEND ON NEXT 100M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K;
-----------------------------------------------------------------------------------------------
五.给表空间创建新用户,并授权
--用户名为: mdfuser
密码为 : mdfPass_1234#
---------------------------------
SQL>----------
CREATE USER mdfuser IDENTIFIED BY mdfPass_1234# DEFAULT TABLESPACE NNC_DATA01 TEMPORARY TABLESPACE temp;
[变量2--用户名:mdfuser] [变量3--密码:mdfPass_1234#] [固定值空间表:NNC_DATA01 ]
SQL>----------
GRANT connect,dba to mdfuser;
[变量2--用户名:mdfuser] **回车-------- (提示授权成功)
-----------------------------------------------------------------------------------------------
************************************************************************************************************
说明前面五步的操作都是一样的
************************************************************************************************************
六.用impdp方案恢复数据库,,这种方案速度较快(比imp最少快5倍)
执行下面的语句,将数据导入到新建的(准备恢复数据的)oracle实例中
------------------------------------------------------------------------------------------------------------
方案1:
----使用现有虚拟目录的方法:
6.1----指定要连接的oracle数据库 c:usersAdministartor>----
sqlplus /@mdfdata13 as sysdba
[变量1--新建的(准备恢复数据的)实例名:mdfdata13]
6.2.1--查看虚拟目录: SQL>----------------------------------
select * from dba_directories;
说明:查看是否存在现有的虚拟目录名称,
6.2.2--查看默认目录下是否存在默认的虚拟目录,比如:
c:ppdministrator/admin/mdfdata13/dpdump/ 存在虚拟目录,比如:data_pump_dir
6.2.3--将虚拟目录授权授权给指定用户 SQL>---------------------------------
grant read,write on directory data_pump_dir to mdfuser ;
说明:,读写权限授权 [默认虚拟目录] [变量2--用户名:mdfuser]
6.2.4--将通过expdp方式备份出来的备份文件,拷贝到虚拟目录,所在的实际目录文件夹中
--将物理实体.dmp和日志文件.log要放置到虚拟目录对应的路径下,
--比如:C:ppAdministratordminmdfdata13dpdump
6.3.1--记录下备份文件的名称
6.3.2--打开备份数据的日志文件,即log文件,查看使用哪个用户做的备份
6.3.3--在恢复语句中,注意调整
6.4----语句c:usersAdministartor>----
IMPDP mdfuser/mdfPass_1234#@mdfdata13 directory = DATA_PUMP_DIR dumpfile = UFNC_BAK.dmp logfile = UFNC_BAK.log Remap_schema=USER_CCC:mdfuser
[变量2--用户名:mdfuser][变量3--密码:mdfPass_1234#][变量1--新建的(准备恢复数据的)实例名:mdfdata13] [变量4--默认虚拟目录:DATA_PUMP_DIR] [备份出来的数据库实体名:UFNC_BAK] [备份出来的数据库日志名:UFNC_BAK]
[变量Remap_schema=USER_CCC:mdfuser--该参数必须填写],且必须用用友已知的备份用户,不然root登陆后,看不到管理员,再设置超级麻烦
说明:USER_CCC为:对应用户导出的日志文件/ mdfuser:为创建的<当前实例中创建的用户名>,
Remap_schema=USER_CCC:mdfuser表示将备份账套中的USER_CCC这个用户对应的所有数据导入到当前实例的mdfuser用户中
临时修改:
IMPDP mdfuser/mdfPass_1234#@mdfdata13 directory = DATA_PUMP_DIR dumpfile=ORCL_BAK.dmp logfile=ORCL_BAK.log Remap_schema=nc65user:mdfuser
IMPDP mdfuser/mdfPass_1234#@mdfdata13 directory = DATA_PUMP_DIR dumpfile=MDFDATA01_BAK.dmp logfile=MDFDATA01_BAK.log Remap_schema=mdfuser:mdfuser
IMPDP mdfuser/mdfPass_1234#@mdfdata13 directory = DATA_PUMP_DIR dumpfile = NC6520210415000001.dmp logfile = NC6520210415000001.log Remap_schema=NC65:mdfuser
IMPDP mdfuser/mdfPass_1234#@mdfdata13 directory = DATA_PUMP_DIR dumpfile = NCDATA_BAK.dmp logfile = NCDATA_BAK.log Remap_schema = NCDATA:mdfuser
20:57
------------------------------------------------------------------------------------------------------------
方案2:
----创建新虚拟目录比如(mdf_XuNiMuLu )的方法:
6.1.1----指定要连接的oracle数据库------ c:usersAdministartor>----
sqlplus /@mdfdata13 as sysdba
[变量1--新建的(准备恢复数据的)实例名:mdfdata13]
6.1.2--在C盘建立一个文件夹,名称为:AAA_expdp
6.2.1--查看虚拟目录: SQL>------------------------------------------
select * from dba_directories;
说明:查看是否存在现有的虚拟目录名称,
6.2.2--删除虚拟目录: SQL>------------------------------------------
drop directory mdf_XuNiMuLu ;
说明:删除 虚拟目录 mdf_XuNiMuLu ,如果没有这个会提示错误,继续下步即可
6.2.3--创建虚拟目录: SQL>------------------------------------------
create or replace directory mdf_XuNiMuLu as 'c:AAA_expdp' ;
说明:虚拟目录的名称为 mdf_XuNiMuLu ,所在的位置为 c:AAA_expdp
6.2.4--给虚拟目录授权 SQL>-----------------------------------------
grant read,write on directory mdf_XuNiMuLu to mdfuser ;
说明:,读写权限授权 [创建的虚拟目录] [变量2--用户名:mdfuser]
6.2.5--将通过expdp方式备份出来的备份文件,拷贝到虚拟目录,所在的实际目录文件夹中
--将物理实体.dmp和日志文件.log要放置到虚拟目录对应的路径下,比如:C:AAA_expdp
6.3.1--记录下备份文件的名称
6.3.2--打开备份数据的日志文件,即log文件,查看使用哪个用户做的备份
6.3.3--在恢复语句中,注意调整
6.6----语句c:usersAdministartor>----
IMPDP mdfuser/mdfPass_1234#@mdfdata13 directory = mdf_XuNiMuLu dumpfile=UFNC_BAK.dmp logfile=UFNC_BAK.log Remap_schema=USER_CCC:mdfuser
[变量2--用户名:mdfuser][变量3--密码:mdfPass_1234#][变量1--新建的(准备恢复数据的)实例名:mdfdata13] [变量4--默认虚拟目录:DATA_PUMP_DIR] [备份出来的数据库实体名:UFNC_BAK] [备份出来的数据库日志名:UFNC_BAK] [该参数必须填写]
[变量Remap_schema=USER_CCC:mdfuser--该参数必须填写],且必须用用友已知的备份用户,不然root登陆后,看不到管理员,再设置超级麻烦
说明:USER_CCC为:对应用户导出的日志文件/ mdfuser:为创建的<当前实例中创建的用户名>,
Remap_schema=USER_CCC:mdfuser表示将备份账套中的USER_CCC这个用户对应的所有数据导入到当前实例的mdfuser用户中
临时修改:
IMPDP mdfuser/mdfPass_1234#@mdfdata13 directory = DATA_PUMP_DIR dumpfile=ORCL_BAK.dmp logfile=ORCL_BAK.log Remap_schema=nc65user:mdfuser
IMPDP mdfuser/mdfPass_1234#@mdfdata13 directory = DATA_PUMP_DIR dumpfile=MDFDATA01_BAK.dmp logfile=MDFDATA01_BAK.log Remap_schema=mdfuser:mdfuser
IMPDP mdfuser/mdfPass_1234#@mdfdata13 directory = DATA_PUMP_DIR dumpfile = NC6520210415000001.dmp logfile = NC6520210415000001.log Remap_schema=NC65:mdfuser
---如果第一次执行提升不正确,就再执行一次
-----------------------------------------------------------------------------------------------
************************************************************************************************************
方案3:
----用imp方案恢复数据库,,这种方案太慢(最少要2个小时)
----执行下面的语句,将数据导入到新建的(准备恢复数据的)oracle实例中
6.1--指定要连接的oracle数据库 c:usersAdministartor>----
sqlplus /@mdfdata13 as sysdba
[变量1--新建的(准备恢复数据的)实例名:mdfdata13]
6.2--将通过exp方式备份出来的备份文件,拷贝到指定的文件夹中,
--将物理实体.dmp和日志文件.log要放置到虚拟目录对应的路径下,比如:C:AAA_exp
6.3.1--记录下备份文件的名称
6.3.2--
6.3.3--在恢复语句中,注意调整
6.3--imp 导入语句 c:usersAdministartor>----
imp mdfuser/mdfPass_1234#@mdfdata13 file=C:AAA_expUFNC_bak.dmp full=y ignore=y
[变量2--用户名:mdfuser][变量3--密码:mdfPass_1234#][变量1--新建的(准备恢复数据的)实例名:mdfdata13] [变量4:路径][变量5:物理文件名]
最后如果提示:成功终止导入,但没有出现警告。”,表明导入数据完毕
-----------------------------------------------------------------------------------------------
七. 检测数据是否导入成功
连接的数据库 : c:usersAdministartor>---- sqlplus mdfuser/mdfPass_1234#@mdfdata13
查看导入的数据表数量: SQL>----------------------- select count(*) from tab;
-----------------------------------------------------------------------------------------------
***********************************************************************************************
八.恢复账套后,建议重新启动计算机
***********************************************************************************************
用友nc中间件配置工具
1.打开--C:yonyouhomeinsysconfig
2.数据源页签--读取
比如1:用友默认的数据库
3.1数据库/ODBC输入: ORCL
3.2用户名输入: sys
3.3密码输入: Aaaa1234.(最后有个点)
比如2:新恢复的数据库
3.1数据库/ODBC输入: mdfdata13
3.2用户名输入 : mdfuser
3.3密码输入 : mdfPass_1234#
4.点击测试,看是否数据库连接成功,如果连接成功,就可以做下一步的操作了
----------------
启用用友NC
1.桌面上或者C:yonyouhome路径中的:startup.bat
说明:时间会比较长,等到出现"信息:server startup in XXX ms (XXX表示启动服务所用时间)" 表示启动成功
2.登录nc
说明:打开浏览器登陆了.登陆地址在IE浏览器收藏夹上.
3.NC登录说明
NC管理登陆
如果不知道密码,可以使用,密码调整工具,
1.修改root密码,再进行下步操作
用户:super--------密码: 111aaa!!! --------- AAAbbb123@
用户:root---------密码: 111aaa!!! --------- AAAbbb123@
NC演示登陆,root进入后可以自定义
用户:admin--------密码: 111aaa!!!
***********************************************************************************************
-----------------------------------------------------------------------------------------------
1.查看是否连接了oracle数据库
c:usersAdministartor>---- sqlplus / as sysdba
2.查看目前连接的实例
SQL>---- select instance_name from v$instance; 注意:最后有个分号
或者到服务里看:OracleService****----星号代表正在运行的实例的名字
3.退出连接
SQL>---- quit
4.指定连接的实例
实例名称
c:usersAdministartor>---- set oracle_sid=orcl
c:usersAdministartor>---- set oracle_sid=NCDATA
c:usersAdministartor>---- set oracle_sid=mdfdata13
SQL>---- connect sys/Aaaa1234.@orcl as sysdba
connect 用户名/密码@数据库名 as sysdba。
回车
如果显示<已连接>,则说明数据库连接上了
实例2举例:
SQL>---- connect NCDATA/NCDATA@NCDATA as sysdba
SQL>---- connect NCDATA/NCDATA@orcl as sysdba
SQL>---- connect nc65user/Aaaa1234.@orcl as sysdba
实例3举例:
SQL>---- connect mdfuser/mdfPass_1234#@mdfdata13 as sysdba
5.查看当前连接oracle实例中的用户名
c:usersAdministartor>---- sqlplus / as sysdba
SQL>---- select username from dba_users;
7.指定要连接新创建的数据库实例
实例名称
c:usersAdministartor>---- set oracle_sid=NCmdfdata13
8.查看是否连接了新创建的oracle数据库实例
c:usersAdministartor>---- sqlplus / as sysdba
9.创建表空间
-----------
--说明在C:ppAdministratororadatamdfdata13路径下,创建表空间
--用户为:mdfuser/ 密码为:mdfPass_1234#
--说明:这里的重要变量为: mdfdata13
SQL>----
CREATE TABLESPACE NNC_DATA01 DATAFILE 'C:ppAdministratororadatamdfdata13
nc_data0101.dbf' SIZE 500M
AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K;
CREATE TABLESPACE NNC_DATA02 DATAFILE 'C:ppAdministratororadatamdfdata13
nc_data0201.dbf' SIZE 300M
AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K;
CREATE TABLESPACE NNC_DATA03 DATAFILE 'C:ppAdministratororadatamdfdata13
nc_data0301.dbf' SIZE 500M
AUTOEXTEND ON NEXT 100M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 512K;
CREATE TABLESPACE NNC_INDEX01 DATAFILE 'C:ppAdministratororadatamdfdata13
nc_index0101.dbf' SIZE 500M
AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K;
CREATE TABLESPACE NNC_INDEX02 DATAFILE 'C:ppAdministratororadatamdfdata13
nc_index0201.dbf' SIZE 300M
AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K;
CREATE TABLESPACE NNC_INDEX03 DATAFILE 'C:ppAdministratororadatamdfdata13
nc_index0301.dbf' SIZE 500M
AUTOEXTEND ON NEXT 100M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K;
CREATE USER mdfuser IDENTIFIED BY mdfPass_1234# DEFAULT TABLESPACE NNC_DATA01 TEMPORARY TABLESPACE temp;
GRANT connect,dba to mdfuser;
**回车
--(提示授权成功)
说明以上语句执行后,
会生成文件夹:C:ppAdministratororadatamdfdata13,并且在该文件夹下会生成存放表空间的文件,格式为.dbf格式
10.将备份文件拷贝到DATA_PUMP_DIR
--将客户备份的 .dmp和.log文件(比如:NC6520210415000001.DMP和NC6520210415000001.log)
**复制到指定文件夹---C:ppAdministratordminNCmdfdata13dpdump
11.执行下面的语句
用户 密码 实例 客户备份出的dmp文件名 数据库
IMPDP mdfuser/mdfPass_1234#@mdfdata13 directory=DATA_PUMP_DIR dumpfile=NC6520210415000001.dmp logfile=impfull.log Remap_schema=NC65:NCmdfdata13
12. 检测数据是否导入成功
直接连接回复的数据库
c:usersAdministartor>---- sqlplus NCmdfdata13/NCmdfdata13@NCmdfdata13
查看是否导入了数据
SQL>---- select count(*) from tab;
*******************************************