合库.docx
- 文档编号:14489060
- 上传时间:2023-06-23
- 格式:DOCX
- 页数:22
- 大小:156.73KB
合库.docx
《合库.docx》由会员分享,可在线阅读,更多相关《合库.docx(22页珍藏版)》请在冰点文库上搜索。
合库
FMIS系统VPD数据库升级步骤
合并原库前提:
确保原FMIS库升级到最新5.4数据库版本状态(已经成功运行合库前脚本包和汇总包),并修复管理对象数据确保对象表结构统一。
准备工作:
检查2个库之间的字符集是否一样.--查询语句
SELECTUSERENV('LANGUAGE')FROMDUAL;
如果不一样,修改目标库字符集为原库的字符集,确保目标库是没有搭建FMIS环境的空库
单实例修改字符集方法:
RAC实例修改字符集方法:
--重要!
验证原库EXEMPTACCESSPOLICY权限。
--非合库原库共享SCHEMA执行下面语句
SELECT*FROMDBA_SYS_PRIVS
WHEREGRANTEE=SYS_CONTEXT('USERENV','CURRENT_SCHEMA')
ANDPRIVILEGE='EXEMPTACCESSPOLICY';
--如果有EXEMPTACCESSPOLICY权限,则一定要回收。
这个权限会使策略失效
--回收语句DEMO见下,FMIS0500对应共享库用户
--非合库原库共享SCHEMA下执行:
REVOKEEXEMPTACCESSPOLICYFROMFMIS0500
--修改ORACLE优化器参数
ALTERSYSTEMSETOPTIMIZER_MODE=CHOOSESCOPE=BOTH
--检查dbms_shared_pool包是否安装
--如果下面查询语句没有记录,则需要安装
SELECT*FROMDBA_OBJECTSWHEREOBJECT_NAME='DBMS_SHARED_POOL';
--安装方法
--sqlplus以sys用户登录,
--1.执行%oracle_home%/rdbms/admin/dbmspool.sql;
--2.赋权
GRANTEXECUTEONDBMS_SHARED_POOLTOPUBLIC
--以下脚本在原FMIS库执行
1、如果是10G以上版本的数据库,要清空回收站,通过下面的脚本可清空所有用户下的回收站:
、
DECLARE
CURSORGET_USERIS
SELECT*FROMDBA_USERS;
BEGIN
FORGET_USER_CURINGET_USER
LOOP
EXECUTEIMMEDIATE'ALTERSESSIONSETCURRENT_SCHEMA='||GET_USER_CUR.USERNAME;
EXECUTEIMMEDIATE'PURGERECYCLEBIN';
ENDLOOP;
END;
2、修改原实例数据表中的long及longraw数据类型,将其修改为clob及blob:
DECLARE
--参数说明:
GET_COL:
查找数据表中字段为long及longraw的数据类型信息
--修改原实例全库数据表中的long及longraw数据类型,将其修改为clob及blob
CURSORGET_COLIS
SELECT/*+RULE*/A.OWNER,A.TABLE_NAME,A.COLUMN_NAME,A.DATA_TYPE
FROMDBA_TAB_COLSA
WHEREINSTR(A.OWNER,'FMIS')=1
ANDA.DATA_TYPEIN('LONGRAW','LONG');
BEGIN
FORGET_COL_CURINGET_COL
LOOP
IFGET_COL_CUR.DATA_TYPE='LONG'THEN
EXECSQL('ALTERTABLE'||GET_COL_CUR.OWNER||'.'||
GET_COL_CUR.TABLE_NAME||'MODIFY'||
GET_COL_CUR.COLUMN_NAME||'CLOB');
ELSE
EXECSQL('ALTERTABLE'||GET_COL_CUR.OWNER||'.'||
GET_COL_CUR.TABLE_NAME||'MODIFY'||
GET_COL_CUR.COLUMN_NAME||'BLOB');
ENDIF;
ENDLOOP;
END;
--3-8步在目标VPD库下登录SYS运行,命令供参考DEMO,需根据实际情况创建
3、调整系统表空间、undo表空间及临时表空间,系统表空间使用两个文件(或裸设备,下面不再说明),每个文件2G,undo表空间及临时表空间使用三个文件,每个文件4G,使用本地管理模式,均不允许自动扩展(今后可根据情况另行添加文件)。
(所有的语句仅供参考,实际应用时,要根据实际情况调整文件路径)
ALTERDATABASEDATAFILE'/ordata/XNCS2/system01.dbf'RESIZE2048M;
ALTERDATABASEDATAFILE'/ordata/XNCS2/system01.dbf'AUTOEXTENDOFF;
ALTERTABLESPACEsystemADDDATAFILE'/ordata/XNCS2/system02.dbf'SIZE2048M;
ALTERDATABASEDATAFILE'/ordata/XNCS2/undotbs01.dbf'RESIZE4096M;
ALTERTABLESPACEUNDOTBS1
ADDDATAFILE'/ordata/XNCS2/undotbs02.dbf'SIZE4096M;
ALTERTABLESPACEUNDOTBS1
ADDDATAFILE'/ordata/XNCS2/undotbs03.dbf'SIZE4096M;
ALTERDATABASETEMPFILE'/ordata/XNCS2/temp01.dbf'RESIZE4096M;
ALTERDATABASETEMPFILE'/ordata/XNCS2/temp01.dbf'AUTOEXTENDOFF;
ALTERTABLESPACETEMP
ADDTEMPFILE'/ordata/XNCS2/temp02.dbf'SIZE4096M;
ALTERTABLESPACETEMP
ADDTEMPFILE'/ordata/XNCS2/temp03.dbf'SIZE4096M;
4、调整联机日志,以保证有6-8组日志,每组日志2个日志文件(数据默认为3组,每组1个)。
先增加五组日志:
ALTERDATABASE
ADDLOGFILEGROUP4('/ordata/XNCS2/FMISredo04_A.log',
'/ordata/XNCS2/FMISredo04_B.log')SIZE200M;
ALTERDATABASE
ADDLOGFILEGROUP5('/ordata/XNCS2/FMISredo05_A.log',
'/ordata/XNCS2/FMISredo05_B.log')SIZE200M;
ALTERDATABASE
ADDLOGFILEGROUP6('/ordata/XNCS2/FMISredo06_A.log',
'/ordata/XNCS2/FMISredo06_B.log')SIZE200M;
ALTERDATABASE
ADDLOGFILEGROUP7('/ordata/XNCS2/FMISredo07_A.log',
'/ordata/XNCS2/FMISredo07_B.log')SIZE200M;
ALTERDATABASE
ADDLOGFILEGROUP8('/ordata/XNCS2/FMISredo08_A.log',
'/ordata/XNCS2/FMISredo08_B.log')SIZE200M;
--下面不断强制切换日志,直到当前日志使用的上面新建的组(通过语句select*fromv$log查看status='CURRENT'的日志组已经到了4-8组,
其他组状态status='INACTIVE'即可)
altersystemswitchlogfile;
--下面删除原日志组
alterdatabasedroplogfilegroup1;
alterdatabasedroplogfilegroup2;
alterdatabasedroplogfilegroup3;
--记住去操作系统下删除这三组日志对应原数据文件
--下面重建刚删除的日志组,在再次重建前,一定要去操作系统下删除日志文件
ALTERDATABASE
ADDLOGFILEGROUP1('/ordata/XNCS2/FMISredo01_A.log',
'/ordata/XNCS2/FMISredo01_B.log')SIZE200M;
ALTERDATABASE
ADDLOGFILEGROUP2('/ordata/XNCS2/FMISredo02_A.log',
'/ordata/XNCS2/FMISredo02_B.log')SIZE200M;
ALTERDATABASE
ADDLOGFILEGROUP3('/ordata/XNCS2/FMISredo03_A.log',
'/ordata/XNCS2/FMISredo03_B.log')SIZE200M;
5、检查系统分析任务,select*fromdba_jobs,在返回的记录中,如果有一条对应的log_user为sysman,则表示系统有一个默认的后台任务一直在执行,这在数据变化频繁的fmis系统中是显著影响性能的,在RAC环境下,甚至可能引起GES频繁交换而宕机。
因此,必须将这个作业删除。
要删除这个作业,必须以sysman用户登录数据,如果不知道sysman用户的密码,执行下面的语句:
alterusersysmanidentifiedbysysman;将sysman用户的密码修改为与用户名相同,再登录,然后执行下面的脚本,删除作业:
DECLARE
CURSORGET_SYSJOBIS
SELECTJOBFROMUSER_JOBSORDERBYJOB;
BEGIN
FORGET_SYSJOB_CURINGET_SYSJOB
LOOP
DBMS_JOB.REMOVE(JOB=>GET_SYSJOB_CUR.JOB);
ENDLOOP;
COMMIT;
END;
/
并运行以下语句清空回收站
PURGEDBA_RECYCLEBIN;
6、增加FMIS的表空间,表空间统一规划为以下几个:
注意:
下面列表只是一个DEMO,具体大小还要根据实际情况而定。
表空间名
表空间说明
文件数
文件大小
备注
FMIS+二级数据中心对应的compid
FMIS主表空间,FMIS的大部分数据表的存放位置
4
4G
FMISCOMP
FMIS业务模块数据存储区,主要用于保存原单位库的特殊业务模块数据,如电费
2
4G
FMISINDEX
FMIS系统索引存储区,合库后,为便于管理,索引与表将完全分离,所有的索引将存储在表空间中。
3
4G
FMIS_LOB
用于存储大字段的表空间,尽量隔离大字段对系统的影响
2
4G
FMIS_LARGE
用于存储大表(存储空间超过120M)的表空间,该表空间的存储参数不使用默认设置,而使用统一分配,每个extents统一为20M,该表中数据将自动形成,系统每晚自动分析数据表,如果一张表的总数据量超过120M,将会自动移到这个表空间。
2
4G
创建的语法如下:
CREATETABLESPACE"FMIS2600"DATAFILE
'/ordata/XNCS2/FMIS2600_1.DBF'SIZE4294967296,
'/ordata/XNCS2/FMIS2600_2.DBF'SIZE4294967296,
'/ordata/XNCS2/FMIS2600_3.DBF'SIZE4294967296,
'/ordata/XNCS2/FMIS2600_4.DBF'SIZE4294967296
NOLOGGINGONLINEPERMANENT
EXTENTMANAGEMENTLOCALAUTOALLOCATESEGMENTSPACEMANAGEMENTMANUAL;
CREATETABLESPACEFMISCOMP
NOLOGGING
DATAFILE'/ordata/XNCS2/FMISCOMP_01.DBF'SIZE4096M,
'/ordata/XNCS2/FMISCOMP_02.DBF'SIZE4096M
EXTENTMANAGEMENTLOCALSEGMENTSPACEMANAGEMENTMANUAL;
CREATETABLESPACEFMISINDEX
NOLOGGING
DATAFILE'/ordata/XNCS2/FMISINDEX_01.DBF'SIZE4096M,
'/ordata/XNCS2/FMISINDEX_02.DBF'SIZE4096M,
'/ordata/XNCS2/FMISINDEX_03.DBF'SIZE4096M
EXTENTMANAGEMENTLOCALSEGMENTSPACEMANAGEMENTMANUAL;
CREATETABLESPACEFMIS_LOB
NOLOGGING
DATAFILE'/ordata/XNCS2/FMISLOB_01.DBF'SIZE4096M,
'/ordata/XNCS2/FMISLOB_02.DBF'SIZE4096M
EXTENTMANAGEMENTLOCALSEGMENTSPACEMANAGEMENTMANUAL;
CREATETABLESPACEFMIS_LARGE
NOLOGGING
DATAFILE'/ordata/XNCS2/FMIS_LARGE_01.DBF'SIZE4096M,
'/ordata/XNCS2/FMIS_LARGE_02.DBF'SIZE4096M
EXTENTMANAGEMENTLOCALUNIFORMSIZE20MSEGMENTSPACEMANAGEMENTMANUAL;
CREATEUSERFMIS2600
IDENTIFIEDBYFMIS2600
DEFAULTTABLESPACEFMIS2600
TEMPORARYTABLESPACETEMP
PROFILEDEFAULT;
CREATEUSERFMIS2601
IDENTIFIEDBYFMIS2601
DEFAULTTABLESPACEFMISCOMP
TEMPORARYTABLESPACETEMP
PROFILEDEFAULT;
--创建单位ER模型对应结构表空间ER_DW和用户ER_DW,并给ER_DW用户授权
CREATETABLESPACEER_DW
NOLOGGING
DATAFILE'ordata/XNCS2/ER_DW_01.DBF'SIZE300M
EXTENTMANAGEMENTLOCALSEGMENTSPACEMANAGEMENTMANUAL;
CREATEUSERER_DW
IDENTIFIEDBYER_DW
DEFAULTTABLESPACEER_DW
TEMPORARYTABLESPACETEMP
PROFILEDEFAULT;
BEGIN
EXECUTEIMMEDIATE'GRANTSELECTANYDICTIONARYTOER_DW';
EXECUTEIMMEDIATE'GRANTALTERANYTABLETOER_DW';
EXECUTEIMMEDIATE'GRANTALTERSYSTEMTOER_DW';
EXECUTEIMMEDIATE'GRANTALTERANYPROCEDURETOER_DW';
EXECUTEIMMEDIATE'GRANTCONNECTTOER_DW';
EXECUTEIMMEDIATE'GRANTCREATEANYPROCEDURETOER_DW';
EXECUTEIMMEDIATE'GRANTCREATEANYTABLETOER_DW';
EXECUTEIMMEDIATE'GRANTCREATEANYINDEXTOER_DW';
EXECUTEIMMEDIATE'GRANTCREATEDATABASELINKTOER_DW';
EXECUTEIMMEDIATE'GRANTCREATEPUBLICDATABASELINKTOER_DW';
EXECUTEIMMEDIATE'GRANTCREATEANYVIEWTOER_DW';
EXECUTEIMMEDIATE'GRANTCREATEPUBLICSYNONYMTOER_DW';
EXECUTEIMMEDIATE'GRANTCREATETABLETOER_DW';
EXECUTEIMMEDIATE'GRANTDELETEANYTABLETOER_DW';
EXECUTEIMMEDIATE'GRANTDROPPUBLICDATABASELINKTOER_DW';
EXECUTEIMMEDIATE'GRANTDROPANYTRIGGERTOER_DW';
EXECUTEIMMEDIATE'GRANTDROPANYINDEXTOER_DW';
EXECUTEIMMEDIATE'GRANTDROPANYPROCEDURETOER_DW';
EXECUTEIMMEDIATE'GRANTDROPANYTABLETOER_DW';
EXECUTEIMMEDIATE'GRANTDROPANYVIEWTOER_DW';
EXECUTEIMMEDIATE'GRANTCREATEPUBLICSYNONYMTOER_DW';
EXECUTEIMMEDIATE'GRANTDROPPUBLICSYNONYMTOER_DW';
EXECUTEIMMEDIATE'GRANTCREATEANYSEQUENCETOER_DW';
EXECUTEIMMEDIATE'GRANTEXECUTEANYPROCEDURETOER_DW';
EXECUTEIMMEDIATE'GRANTGRANTANYPRIVILEGETOER_DW';
EXECUTEIMMEDIATE'GRANTGRANTANYROLETOER_DW';
EXECUTEIMMEDIATE'GRANTCREATEANYTRIGGERTOER_DW';
EXECUTEIMMEDIATE'GRANTINSERTANYTABLETOER_DW';
EXECUTEIMMEDIATE'GRANTSELECTANYDICTIONARYTOER_DW';
EXECUTEIMMEDIATE'GRANTSELECTANYSEQUENCETOER_DW';
EXECUTEIMMEDIATE'GRANTDROPANYSEQUENCETOER_DW';
EXECUTEIMMEDIATE'GRANTSELECTANYTABLETOER_DW';
EXECUTEIMMEDIATE'GRANTUNLIMITEDTABLESPACETOER_DW';
EXECUTEIMMEDIATE'GRANTUPDATEANYTABLETOER_DW';
EXECUTEIMMEDIATE'GRANTCOMMENTANYTABLETOER_DW';
EXECUTEIMMEDIATE'GRANTCREATEANYTYPETOER_DW';
EXECUTEIMMEDIATE'GRANTCREATETABLESPACETOER_DW';
EXECUTEIMMEDIATE'GRANTCREATEUSERTOER_DW';
EXECUTEIMMEDIATE'GRANTEXP_FULL_DATABASETOER_DW';
EXECUTEIMMEDIATE'GRANTIMP_FULL_DATABASETOER_DW';
END;
7、创建新的实例,可以通过dbca或者脚本创建。
创建完成后,关闭回收站:
DBMS_RLS策略包赋权
ALTERSYSTEMSETRECYCLEBIN=OFF;
GRANTEXECUTEONDBMS_RLSTOPUBLIC;
GRANTEXECUTEONDBMS_SESSIONTOPUBLIC;
8、创建到原数据库的databaselink,DEMO中XNCS1对应原库SID
CREATEPUBLICDATABASELINKFMIS_OLDCONNECTTOFMIS2600
IDENTIFIEDBYFMIS2600USING'(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.8.23)(PORT=1521))
)
(CONNECT_DATA=
(SERVICE_NAME=XNCS1)
)
)'
--以下登录ER_DW用户执行
9、创建模型ER数据结构
--以下操作登录VPD共享库用户下运行
10、创建HZ_LOG等跟踪语句环境
11、迁移共享库数据,通过下面的脚本将原共享库数据全部复制到当前VPD库
11步(第一部分):
生成数据字典
--速度优化部分
--11步.数据字典并发加快速度方法:
--下面的这几个数据字典表可以并发处理,开多个会话生成各自的数据字典VPD表,节省时间,其中VPD_DBA_TAB_COLS这个如果项目组的单位库比较多,数据量大的话,
--报TEMP段不能扩展可以先在原非合库中生成,然后导入到目标VPD库ER_D
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 合库.docx