暂无图片
请问oracle如何批量扩展通一个表空间?
我来答
分享
一念之间
2021-09-03
请问oracle如何批量扩展通一个表空间?

比如A表空间 我需要到3T的容量  每个数据库文件30G  如何批量扩展?

我来答
添加附件
收藏
分享
问题补充
4条回答
默认
最新
三笠丶
暂无图片

改成这样就行:

#!/bin/bash sqlplus / as sysdba <<EOF spool ctbs.log begin for i in 31 .. 100 loop execute immediate 'alter tablespace 表空间名称 add datafile ''数据文件路径/out'||i||'.dbf'' size 30G autoextend off'; end loop; end; / spool off EOF

image.png

image.png

image.png

具体数据文件路径,请根据自己环境进行更换!

暂无图片 评论
暂无图片 有用 0
暂无图片
一念之间
题主
2021-09-03
您好,我这是19c的pdb,要在sqlplus / as sysdba <
三笠丶
答主
2021-09-03
那你就就把 sqlplus / as sysdba 换成 连接pdb的就行!
一念之间
题主
2021-09-03
您好,我没太用过pdb,这是在您上面的sqlplus / as sysdba 后面加一个alter session set container=PDB01;还是直接sqlplus sys/**@pdb01 as sysdba这样写?这sys是cdb的还是pdb的密码?
lscomeon

sql查询拼接出来扩展sql,放后台跑一晚上,
文本工具批量生个也行,
这东西有一个就有一堆了,但是加文件就得一个一个来了

暂无图片 评论
暂无图片 有用 0
一念之间
题主
2021-09-03
您好,很感谢您的回答,我的意思是比如执行完扩展1数据文件30G,自动扩展下一个2,30G数据库文件,以此类推直到表空间扩展到3T停止
薛晓刚

alter tablespace xxx add datafile x01 size 30G;
alter tablespace xxx add datafile x02 size 30G;
这样一直写下去,100个作为一个txt。
@sql.txt然后过几个小时过来看

暂无图片 评论
暂无图片 有用 0
一念之间
题主
2021-09-03
您好,很感谢您的回答,我的意思是比如执行完扩展1数据文件30G,自动扩展下一个2,30G数据库文件,以此类推直到表空间扩展到3T停止
三笠丶
暂无图片

✅正确答案:以下做一个测试!

1、先设置OMF参数:

alter system set db_create_file_dest='/oradata';

image.png

2、编写shell脚本 ctbs.sh

#!/bin/bash sqlplus / as sysdba <<EOF spool ctbs.log begin for i in 0 .. 100 loop execute immediate 'alter tablespace 表空间名称 add datafile size 30G autoextend off'; end loop; end; / spool off EOF

image.png

3、后台运行

sh ctbs.sh &

image.png

如下,已成功添加:

image.png

等待执行完成即可,希望能帮助到你!动动小手点个采纳!

暂无图片 评论
暂无图片 有用 0
一念之间
题主
2021-09-03
您好,感谢您能回答,还要请教一下,我不需要指定数据文件的位置和编号吗
三笠丶
答主
2021-09-03
设置了OMF参数,就不需要的!
一念之间
题主
2021-09-03
您好,我需要指定这个叫什么名字,例如out01.bdf-out100.bdf,而且我现在已经建立30个了 那也就是我需要从out31.bdf-out100.bdf
展开全部评论(1条)
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏