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

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

我来答
添加附件
收藏
分享
问题补充
4条回答
默认
最新
Lucifer三思而后行
暂无图片

改成这样就行:

#!/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
打赏 0
暂无图片
一念之间
题主
2021-09-03
您好,我这是19c的pdb,要在sqlplus / as sysdba <
Lucifer三思而后行
答主
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
打赏 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
打赏 0
一念之间
题主
2021-09-03
您好,很感谢您的回答,我的意思是比如执行完扩展1数据文件30G,自动扩展下一个2,30G数据库文件,以此类推直到表空间扩展到3T停止
Lucifer三思而后行
暂无图片

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

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
打赏 0
一念之间
题主
2021-09-03
您好,感谢您能回答,还要请教一下,我不需要指定数据文件的位置和编号吗
Lucifer三思而后行
答主
2021-09-03
设置了OMF参数,就不需要的!
一念之间
题主
2021-09-03
您好,我需要指定这个叫什么名字,例如out01.bdf-out100.bdf,而且我现在已经建立30个了 那也就是我需要从out31.bdf-out100.bdf
展开全部评论(1条)
回答交流
Markdown


请输入正文
提交
相关推荐
Oracle服务器端sqlplus在表里插入中文,sqlplus里能正常显示,客户端plsql显示乱码。客户端plsql插入中文,plsql里能正常显示,服务端sqlplus乱码
回答 1
已采纳
你用sqlplus插入中文的时候,是用的手敲命令还是用的sql文件?有没有检查一下sql文件的编码是utf8还是gbk?
oracle慢sql的where条件都是冒号加数字,怎么办
回答 4
不过一般情况下不用,看SQL执行计划的方法很多,直接看执行计划就好了,不需要实际跑一下SQL才可以看的
oracle中想忽略掉存储过程中的部分语句,不想让它运行,该如何注释
回答 4
暂无文字回复
子查询进行内连接查询不一致问题
回答 4
没有明白你有什么问题?你想做什么?
oracle 12c 数据泵导出整个CPD及所有的PDB,用system和sys用户都不成功
回答 7
12C需要连接到pdb再导出吧,连接到cdb的时候不能导出pdb。在tansnames.ora文件里给pdb创建条目,在expdp的userid里面配置即可
大量数据更新操作
回答 5
好的,谢谢两位老师,写了一个merge写了一个LOOP循环,看看执行结果,能不能执行出来吧。谢谢了。
alert里的一条连接信息: oracle@主机名(J004) OS user ORACLE
回答 3
已采纳
暂无文字回复
12c rac 里面的MGMT 空间不足了。发现 有个 目录占用的空间比较大,我想咨询下这里面的东西怎么清理了?
回答 1
不可以,红色标注是PDB的UUID,目录下为Pluggabledatabasefiles
oltp和olap不同应用下,有哪些时候会是单线程操作哪些时候会是多线程并发的啊?
回答 1
采用单线程和多线程并发要个根据数据库特性和业务关联都选择。从mysql角度出发:mysql是索引组织表,对于同一个业务流程应该是单线程,对于批量分析型任务应该是并行操作。mysql是默认innodb引
用rman校验,是不是只有Oracle 12c才可以?
回答 1
11g以上版本都可以的吧。