暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 一键获取源库表空间 DDL 脚本

原创 Lucifer三思而后行 2022-12-09
1489

一键创建表空间

-- 查看需要创建的表空间 select distinct tablespace_name from dba_segments where owner='LUCIFER'; TABLESPACE_NAME ------------------------------ LUCIFER -- 获取所需创建表空间的ddl语句(此方法用于创建很多表空间时会很方便) select distinct 'select dbms_metadata.get_ddl(''TABLESPACE'',' || chr(39) || tablespace_name || chr(39) || ') ddl FROM dual;' sql from dba_tablespaces where tablespace_name in (select distinct tablespace_name from dba_segments where owner = 'LUCIFER') order by 1; ------------------------------------------------------------------------------------------ select dbms_metadata.get_ddl('TABLESPACE','LUCIFER') ddl FROM dual; -- 获取创建表空间的ddl语句 set long 2000000000 echo off feedback off heading off pagesize 0 linesize 30000 trimout on wrap on trimspool on termout off serveroutput off SQLPROMPT "SQL>" col ddl for a3000 wrapped word execute dbms_metadata.set_transform_param(dbms_metadata.session_transform,'STORAGE',false); execute dbms_metadata.set_transform_param(dbms_metadata.session_transform,'PRETTY',true); execute dbms_metadata.set_transform_param(dbms_metadata.session_transform,'SQLTERMINATOR',true); spool ctbs_create.sql select dbms_metadata.get_ddl('TABLESPACE','LUCIFER') ddl FROM dual; spool off -- 获取脚本后修改对应的数据库文件目录(如果有数据文件目录的,需要修改成目标端的路径) SQL>select dbms_metadata.get_ddl('TABLESPACE','LUCIFER') ddl FROM dual; CREATE TABLESPACE "LUCIFER" DATAFILE SIZE 104857600 AUTOEXTEND ON NEXT 104857600 MAXSIZE 32767M LOGGING ONLINE PERMANENT BLOCKSIZE 8192 EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT NOCOMPRESS SEGMENT SPACE MANAGEMENT AUTO; SQL>spool off

📢注意: 如果创建表空间时遇到 ORA-02494: invalid or missing maximum file size in MAXSIZE clause 则说明数据文件大小比 MAXSIZE 要大,只需要把对应的 MAXSIZE 改为 32767M。¥

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论