博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oracle数据库执行脚本常用命令总结
阅读量:5933 次
发布时间:2019-06-19

本文共 4098 字,大约阅读时间需要 13 分钟。

1. 执行一个SQL脚本文件

 代码如下 复制代码

sqlplus user/pass@servicename<file_name.sql
SQL>start file_names
SQL>@ file_name
 

我们可以将多条sql语句保存在一个文本文件中,这样当要执行这个文件中的所有的sql语句时,用上面的任一命令即可,这类似于dos中的批处理。

@与@@的区别是什么?
@等于start命令,用来运行一个sql脚本文件。
@命令调用当前目录下的,或指定全路径,或可以通过SQLPATH环境变量搜寻到的脚本文件。该命令使用是一般要指定要执行的文件的全路径,否则从缺省路径(可用SQLPATH变量指定)下读取指定的文件 www.111Cn.net。
@@用在sql脚本文件中,用来说明用@@执行的sql脚本文件与@@所在的文件在同一目录下,而不用指定要执行sql脚本文件的全路径,也不是从SQLPATH环境变量指定的路径中寻找sql脚本文件,该命令一般用在脚本文件中。
如:在c:temp目录下有文件start.sql和nest_start.sql,start.sql脚本文件的内容为:
@@nest_start.sql – - 相当于@ c:tempnest_start.sql
则我们在sql*plus中,这样执行:

 代码如下 复制代码

SQL> @ c:tempstart.sql
 

2. 重新运行上一次运行的sql语句

SQL>/
3. 将显示的内容输出到指定文件

 代码如下 复制代码

SQL> SPOOL file_name
 

在屏幕上的所有内容都输入到该文件中,包括你输入的sql语句。

通常情况下,我们使用SPOOL方法,将数据库中的表导出为文本文件的时候会采用两种方法,如下述:
方法一:采用以下格式脚本

 代码如下 复制代码

set colsep ‘|’; –设置|为列分隔符
set trimspool on;
set linesize 120;
set pagesize 2000;
set newpage 1;
set heading off;
set term off;
set num 18;
set feedback off;
spool 路径+文件名;
select * from tablename;
spool off;
 

方法二:采用以下脚本

 代码如下 复制代码

set trimspool on
set linesize 120
set pagesize 2000
set newpage 1
set heading off
set term off
spool 路径+文件名
select col1||’,'||col2||’,'||col3||’,'||col4||’..’ from tablename;
spool off

附一些基本命令

1、得到数据库名和创建日期

SELECT name, created, log_mode, open_mode FROM v$database;

2、ORACLE数据库的计算机的主机名,ORACLE数据库的实例名及ORACLE数据库管理系统的版本信息

SELECT host_name, instance_name, version FROM v$instance;

3、为了知道oracle数据库版本的一些特殊信息

select * from v$version;

4、获取控制文件名字

select * from v$controlfile;

5、得到Oracle数据库的重做日志配置信息

SELECT group#, members, bytes, status, archived FROM v$log;
select GROUP#,MEMBER from v$logfile;

6、获取oracle的每个重做日志(成员)文件所存放的具体位置

select * from v$logfile;

7、知道ORACLE数据库的备份和恢复策略和归档文件的具体位置

archive log list

8、知道ORACLE数据库中到底有多少表空间以及每个表空间的状态

select tablespace_name, block_size, status, contents, logging from dba_tablespaces;
select tablespace_name, status from dba_tablespaces;

9、知道每个表空间存在哪个磁盘上以及文件的名字等信息

SELECT file_id, file_name, tablespace_name, status, bytes from dba_data_files;
select file_name, tablespace_name from dba_data_files;

10、知道Oracle数据库系统上到底有多少用户和都是什么时候创建的

select username,created from dba_users;
select username, DEFAULT_TABLESPACE from dba_users;

11、从控制文件中取出信息涉及到以下一些相关的命令

 

select * from v$archived

select * from v$archived_log
select * from v$backup
select * from v$database
select * from v$datafile
select * from v$log
select * from v$logfile
select * from v$loghist
select * from v$tablespace
select * from v$tempfile

12、控制文件由两大部份组成:可重用的部份和不可重用的部分。可重用的部分的大小可用CONTROL_FILE_RECORD_KEEP_TIME参数来控制,该参数的默认值为7天,即可重用的部份的内容保留7天,一周之后这部份的内容可能被覆盖。可重用的部份是供恢复管理器来使用的,这部份的内容可以自动扩展。Oracle数据库管理员可以使用CREAT DATABASE或 CREAT CONTROLFILE语句中的下列关键字(参数)来间接影响不可重用的部份的大小:

MAXDATAFILES

MAXINSTANCES
MAXLOGFILES
MAXLOGHISTORY
MAXLOGMEMBERS

13、查看控制文件的配置

SELECT type, record_size, records_total, records_used  FROM v$controlfile_record_section;

14、如果您的显示被分成了两部分,您需要使用类似于set pagesize 100的SQL*Plus命令先格式化输出。有关的格式化输出命令有以下这些:

record_size:  为每个记录的字节数。
records_total:为该段所分配的记录个数。
records_used:为该段所使用的记录个数。

15、知道控制文件中的所有数据文件(DATAFILE),表空间(TABLESPACE),和重做日志(REDO LOG)所使用的记录情况

SELECT type, record_size, records_total, records_used
FROM  v$controlfile_record_section
WHERE type IN ( ‘DATAFILE', ‘TABLESPACE', ‘REDO LOG');

16、获取控制文件名字

select value from v$parameter where name ='control_files';
或者:select * from v$controlfile

17、如何在一个已经安装的Oracle数据库中添加或移动控制文件呢?

以下是在一个已经安装的Oracle数据库中添加或移动控制文件的具体步骤:

a、利用数据字典v$controlfile来获取现有控制文件名字。

b、正常关闭Oracle数据库。

c、将新的控制文件名添加到参数文件的CONTROL_FILES参数中。

d、使用操作系统的复制命令将现有控制文件复制到指定位置。

e、重新启动Oracle数据库。

f、利用数据字典v$controlfile来验证新的控制文件名字是否正确。

g、如果有误重做上述操作,如果无误删除无用的旧控制文件。

注: 如果您使用了服务器初始化参数文件(SPFILE),您不能关闭Oracle数据库而且应该在第3步使用alter system set control_files的Oracle命令来改变控制文件的位置。

 

SQL> alter system set control_files =

‘D:Disk3CONTROL01.CTL',
‘D:Disk6CONTROL02.CTL',
‘D:Disk9CONTROL03.CTL' SCOPE=SPFILE;

18、由于控制文件是一个极其种要的文件,除了以上所说的将控制文件的多个副本存在不同的硬盘上的保护措施外,在数据库的结构变化之后,您应立即对控制文件进行备份。可以用Oracle命令来对控制文件进行备份:

alter database backup controlfile to ‘D:backupcontrol.bak';

19、您也可将备份到一个追踪文件中。该追踪文件包含有重建控制文件所需的SQL语句。可使用以下SQL语句来产生这一追踪文件:

alter database backup controlfile to trace;

20、正常关闭oracle命令

shutdown immeditae

更多详细内容请查看:

转载地址:http://qjctx.baihongyu.com/

你可能感兴趣的文章
5G进度卡关 联发科应如何解困?
查看>>
工信部全面推进移动物联网(NB-IoT)建设发展
查看>>
微软员工:与纳德拉共事,像坐过山车一样刺激
查看>>
《Ext JS权威指南》——2.2节配置使用Ext JS库
查看>>
美第四大有线服务供应商宣布5年完成10Gbps光纤网络推广工作
查看>>
前三季度贵安新区完成大数据产业规模197.96亿元
查看>>
瞄准500亿元规模 湖北打造国家级大数据产业基地
查看>>
联想集团涨超7% 杨元庆持股比例升至8.12%
查看>>
知识产权服务商智慧芽完成C轮融资 红衫资本领投
查看>>
云计算出海!阿里云将成新加坡智慧国家战略“军师”
查看>>
美国新泽西光纤交易所扩建数据中心校园设施
查看>>
大杀器!苹果A10X处理器曝光:10nm工艺/全新GPU
查看>>
网络边界的迷失?关键要获得真实可视性
查看>>
城市智慧商圈将进行试点建设
查看>>
评论:是什么能够让英特尔、清华大学等三方携手?
查看>>
携手易维帮助台,神州数码轻松搞定IT外包服务
查看>>
珠海航展将首次利用大数据技术进行交通诱导
查看>>
梅耶尔将对雅虎“开刀”:裁员15%,关闭部分业务
查看>>
小网站架构优化-提升抗并发能力:子应用程序分离方案
查看>>
澳大利亚初创公司SalesPreso获得200万美元种子投资
查看>>