Oracle 数据库迁移一键创建源库表空间 SQL语句
【摘要】
⭐️ 获取需要迁移的用户可以参考:Oracle 数据泵迁移用户创建 SQL语句
首先通过用户来获取迁移需要的表空间名称:
SELECT distinct ''''|| t.tablespace_na...
⭐️ 获取需要迁移的用户可以参考:Oracle 数据泵迁移用户创建 SQL语句
首先通过用户
来获取迁移需要的表空间名称:
SELECT distinct ''''|| t.tablespace_name||''',' From dba_segments t WHERE t.owner in ('需要迁移的用户名') and t.tablespace_name not in ('USERS','SYSTEM');
- 1
📢 注意:需要排除系统默认创建表空间!
通过 SQL 获取创建脚本:
SELECT 'CREATE TABLESPACE ' ||D.TABLESPACE_NAME|| ' datafile ''/oradata/orcl/' ||LOWER(D.TABLESPACE_NAME)||'01.dbf'''|| ' size '||
case when (D.total_gb - F.free_gb) > 30 then 30 else round(D.total_gb - F.free_gb + 2) end ||'G autoextend off EXTENT MANAGEMENT LOCAL;'
FROM (SELECT TABLESPACE_NAME,
ROUND(SUM(BYTES) / (1024 * 1024 * 1024), 2) free_gb
FROM SYS.DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) F,
(SELECT DD.TABLESPACE_NAME,
ROUND(SUM(DD.BYTES) / (1024 * 1024 * 1024), 2) total_gb
FROM SYS.DBA_DATA_FILES DD
GROUP BY DD.TABLESPACE_NAME) D
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+)
AND D.TABLESPACE_NAME IN ('需要创建的表空间名称');
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
📢 注意:/oradata/orcl/
为目标端的数据文件目录路径!
创建 shell 脚本来后台创建表空间:
以下为 ctbs.sh
脚本内容:
sqlplus / as sysdba <<EOF
spool ctbs.log
## 这里填写上面👆🏻sql查询出来的语句!
spool off
EOF
- 1
- 2
- 3
- 4
- 5
编辑好脚本之后,执行后台创建:
chmod 775 ctbs.sh
sh ctbs.sh &
- 1
- 2
本次分享到此结束啦~
如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力。
❤️ 技术交流可以 关注公众号:Lucifer三思而后行 ❤️
文章来源: luciferliu.blog.csdn.net,作者:Lucifer三思而后行,版权归原作者所有,如需转载,请联系作者。
原文链接:luciferliu.blog.csdn.net/article/details/120236559
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)