博科测试新建表空间(自己记录)及明细表数据恢复
第一部分:创建新的表空间(方便在测试机测试日结明细表的迁移,忘记怎么设置新建表空间的用户名和密码了)。
1、再bkwl 的测试机SQL窗口执行代码
datafile 'D:\APP\ADMINISTRATOR\ORADATA\ZBWL\zbwlnew.dbf'
size 1024M
autoextend on next 5M maxsize 3000M;
grant create any sequence to zbwlnew;
grant create any table to zbwlnew;
grant delete any table to zbwlnew;
grant insert any table to zbwlnew;
grant select any table to zbwlnew;
grant unlimited tablespace to zbwlnew;
grant execute any procedure to zbwlnew;
grant update any table to zbwlnew;
grant create any view to zbwlnew;
imp zbwlnew/111111@BKWL FILE=F:\博科数据库备份文件
\zbwl20170602.dmp ignore=y full=y
导出:
exp zbwl/zbwl@zbwl file=d:\daochu.dmp full=y
3、修改测试机的连接地址修改完红框里运行一下
修改地址C:\TMS_ZB\setup\setup-env.bat 服务器:10.0.0.171
4、修改地址(红色部分):
:: 设置环境变量
:: 以下变量需要根据现场环境进行修改,设置系统所连接的数据库参数
:: DB_TYPE 设置数据库类型,取值:DB2=0; Oracle=1; MSSQLServer=2; MySQL=3;
:: JDBC_DRIVER 设置 JDBC 驱动类名,Oracle=oracle.jdbc.driver.OracleDriver; MSSQLServer=net.sourceforge.jtds.jdbc.Driver
:: JDBC_URL 设置 JDBC 连接的数据库信息,Oracle=jdbc:oracle:thin:@[数据库服务器名或 IP 地址]:[端口,通常是1521]:[数据库实例名]; MSSQLServer=jdbc:jtds:sqlserver://[数据库服务器名或 IP 地址]:[端口,通常是1433]/[数据库实例名]
:: DB_USERNAME 设置数据库用户名,DB_PASSWORD 设置数据库用户密码,DB_SERVER 设置数据库服务器名或 IP 地址
:: LOG4J_LEVEL 设置日志的级别,Log4j建议只使用四个级别,优先级从高到低分别是:ERROR、WARN、INFO、DEBUG。
set DB_TYPE=1
set JDBC_DRIVER=oracle.jdbc.driver.OracleDriver
set JDBC_URL=jdbc:oracle:thin:@10.0.0.172:1521:bkwl
set DB_USERNAME=zbwlnew
set DB_PASSWORD=111111
set DB_SERVER=localhost
set LOG4J_LEVEL=INFO
修改之后,测试机就连接到了这个新的表空间(数据库),主要是先在测试机测试日结明细表的迁移(WM_DAILY_QUANT)。
5、修改完成双击同个文件夹下的STEP.BAT文件,重新运行一下。
6、完成后去前台做数据迁移。在前台做数据迁移有两种坏处:第一,不知道执行到哪一步。第二:需要开启TOMCAT服务,如果开启服务,用户如果录入单据,数据迁移中会
很容易出现错误。所以,一般生成SQL脚本,把SQL语句复制到ORACEL客户端,直接再数据库执行,同时关掉TOMCAT服务。
第二部分:cmd命令导入导出。
导入DMP文件:
ReBuild=True
RecordMidCall=True
ReMigrate=True
set SERVER_CONFIG=C:/TMS_ZB/Latest/core_config2016.05.09/core_config
::set SERVER_CONFIG=E:/core_config_sz F:/myscm/config
set LOG4J_FILE=C:/TMS_ZB/Latest/logs/mySCM_2012.log
CREATE OR REPLACE TRIGGER KEEP_P
AFTER UPDATE ON WM_DAILY_QUANT_P
FOR EACH ROW
BEGIN
INSERT INTO WM_DAILY_QUANT_P_K(K_TIME,DQT_DATE) VALUES(SYSDATE,:NEW.DQT_DATE);
END;