oracle:手动同步数据库

文章目录


oracle:手动同步数据库

一、查询有哪些表空间(原库执行)

sql 复制代码
SELECT tablespace_name, status, contents, logging 
FROM dba_tablespaces 
ORDER BY tablespace_name;

二、生成创建表空间的语句(原库执行)

sql 复制代码
SELECT 
    'CREATE TABLESPACE ' || tablespace_name || ' ' ||
    'DATAFILE ''' || file_name || ''' ' ||
    'SIZE ' || ROUND(bytes/1024/1024, 0) || 'M ' ||
    'AUTOEXTEND ' || 
    CASE WHEN autoextensible = 'YES' 
         THEN 'ON NEXT ' || increment_by*8192/1024/1024 || 'M ' ||
              'MAXSIZE ' || 
              CASE WHEN maxbytes = 0 THEN 'UNLIMITED'
                   ELSE ROUND(maxbytes/1024/1024, 0) || 'M'
              END
         ELSE 'OFF'
    END || ';' AS create_tablespace_sql
FROM dba_data_files
ORDER BY tablespace_name, file_name;

三、查询现有的表空间的数据文件位置(现库执行)

sql 复制代码
--查询现有的表空间的数据文件位置
SELECT file_name, tablespace_name FROM dba_data_files;

四、创建表空间(现库执行)

将使用到原库的表空间都创建上

sql 复制代码
CREATE TABLESPACE 表空间名 DATAFILE 'D:\INSTALL\ORACLE\APP\xx\ORADATA\ORCL\文件名.DBF' SIZE 100M AUTOEXTEND ON NEXT 50M MAXSIZE 5120M;

五、创建用户(现库执行)

sql 复制代码
CREATE USER 用户名
IDENTIFIED BY "密码"
DEFAULT TABLESPACE 表空间名
TEMPORARY TABLESPACE TEMP;

六、授予角色与系统权限(现库执行)

sql 复制代码
GRANT CONNECT, RESOURCE TO 用户名;
GRANT CREATE SESSION TO 用户名;
ALTER USER 用户名QUOTA UNLIMITED ON 表空间名;

七、导出表结构(原库执行,DBeaver工具操作)

sql 复制代码
CREATE TABLE "ENT"."DM_BAS_CUSTOMER" 
   (	"OWNER_ID" NVARCHAR2(11), 
	"CUSTOMER_ID" NVARCHAR2(11) NOT NULL ENABLE, 
	"CREATE_BY" NVARCHAR2(64), 
	"CREATE_AT" DATE DEFAULT sysdate NOT NULL ENABLE, 
	"UPDATE_BY" NVARCHAR2(64), 
	"UPDATE_AT" DATE DEFAULT sysdate NOT NULL ENABLE, 
	 CONSTRAINT "SYS_C00173548" CHECK ("CUSTOMER_ID" IS NOT NULL) ENABLE, 
	 CONSTRAINT "SYS_C00173549" CHECK ("CREATE_AT" IS NOT NULL) ENABLE, 
	 CONSTRAINT "SYS_C00173550" CHECK ("UPDATE_AT" IS NOT NULL) ENABLE
   ) SEGMENT CREATION DEFERRED 
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
 NOCOMPRESS LOGGING
  STORAGE( INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "TS_ENT" ;

COMMENT ON TABLE ENT.DM_BAS_CUSTOMER IS '客户档案';
COMMENT ON COLUMN ENT.DM_BAS_CUSTOMER.OWNER_ID IS '货主ID';
COMMENT ON COLUMN ENT.DM_BAS_CUSTOMER.IS_ENABLE IS '是否启用';
COMMENT ON COLUMN ENT.DM_BAS_CUSTOMER.CREATE_BY IS '创建者';
COMMENT ON COLUMN ENT.DM_BAS_CUSTOMER.CREATE_AT IS '建立时间';
COMMENT ON COLUMN ENT.DM_BAS_CUSTOMER.UPDATE_BY IS '修改者';
COMMENT ON COLUMN ENT.DM_BAS_CUSTOMER.UPDATE_AT IS '更新时间';

八、执行以上SQL(现库执行,DBeaver工具操作)

九、数据导出(原库执行,DBeaver工具操作)

九、数据导入(现库执行,DBeaver工具操作)

十、完成,优缺点说明

优点:灵活,手动操作,知根知底

缺点:每个表都要操作一次,繁琐。

相关推荐
老纪的技术唠嗑局11 小时前
把 seekdb 塞进 iOS App:让混合检索嵌入手机
数据库
ClouGence11 小时前
开源数据库管理工具 CloudDM 新版本发布,支持 OpenSearch、IoTDB 数据源
数据库·开源
徐小黑ACG12 小时前
Redis-基础
数据库·redis·缓存
火山引擎开发者社区12 小时前
案例实践 | 让 Agent 读懂业务口径:ContextSearch 在广告数据查询中的实践
数据库
10年前端老司机13 小时前
Milvus 8种检索能力实践
数据库·python·agent
Decay__14 小时前
14_MySQL 高可用与容灾架构 —— MGR / InnoDB Cluster / Keepalived+VIP / 双主 / 读写分离 / 两地三中心
运维·数据库·sql·mysql·架构
freejackman14 小时前
【实战三】撕开脱敏盲区:深度解析 CASE WHEN 与窗口函数血缘
大数据·数据库·sql
codigger16 小时前
线上数据库连接池打满:从应急止损到架构根治的完整方案
数据库·sql·程序员
倔强的石头_16 小时前
集中式与分布式怎么选?我把手头11套系统重新过了一遍秤
数据库
挖掘狂人16 小时前
线上数据库连接池打满:从应急止损到架构根治的完整方案
数据库·sql·程序员