Oracle数据库基本常用命令汇总

Oracle数据库基本常用命令汇总,第1张

以下是对Oracle中的数据库基本常用命令进行了总结介绍 需要的朋友可以过来参考下  

得到数据库名和创建日期 SELECT name created log_mode open_mode FROM v$database;

ORACLE数据库的计算机的主机名 ORACLE数据库的实例名及ORACLE数据库管理系统的版本信息 SELECT host_name instance_name version FROM v$instance;

为了知道oracle数据库版本的一些特殊信息 select from v$version;

获取控制文件名字 select from v$controlfile;

得到Oracle数据库的重做日志配置信息 SELECT group# members bytes status archived FROM v$log; select GROUP# MEMBER from v$logfile;

获取oracle的每个重做日志(成员)文件所存放的具 置 select from v$logfile;

知道ORACLE数据库的备份和恢复策略和归档文件的具 置 archive log list

知道ORACLE数据库中到底有多少表空间以及每个表空间的状态 select tablespace_name block_size status contents logging from dba_tablespaces; select tablespace_name status from dba_tablespaces;

知道每个表空间存在哪个磁盘上以及文件的名字等信息 SELECT file_id file_name tablespace_name status bytes from dba_data_files; select file_name tablespace_name from dba_data_files;

知道Oracle数据库系统上到底有多少用户和都是什么时候创建的 select username created from dba_users; select username DEFAULT_TABLESPACE from dba_users;

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

复制代码 代码如下: 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

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

复制代码 代码如下: MAXDATAFILES MAXINSTANCES MAXLOGFILES MAXLOGHISTORY MAXLOGMEMBERS

查看控制文件的配置 SELECT type record_size records_total records_used  FROM v$controlfile_record_section;

如果您的显示被分成了两部分 您需要使用类似于set pagesize 的SQLPlus命令先格式化输出 有关的格式化输出命令有以下这些 record_size   为每个记录的字节数 records_total 为该段所分配的记录个数 records_used 为该段所使用的记录个数

知道控制文件中的所有数据文件(DATAFILE) 表空间(TABLESPACE) 和重做日志(REDO LOG)所使用的记录情况 SELECT type record_size records_total records_used FROM  v$controlfile_record_section WHERE type IN ( ‘DATAFILE ‘TABLESPACE ‘REDO LOG );

获取控制文件名字 select value from v$parameter where name = control_files ; 或者 select from v$controlfile

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

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

b 正常关闭Oracle数据库

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

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

e 重新启动Oracle数据库

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

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

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

复制代码 代码如下: SQL> alter system set control_files = ‘D:\Disk \CONTROL CTL ‘D:\Disk \CONTROL CTL ‘D:\Disk \CONTROL CTL SCOPE=SPFILE;

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

您也可将备份到一个追踪文件中 该追踪文件包含有重建控制文件所需的SQL语句 可使用以下SQL语句来产生这一追踪文件 alter database backup controlfile to trace;

lishixinzhi/Article/program/Oracle/201311/19116

1、shutdown normal (从字面就可理解这是一个用正常的方式来关闭数据库。)

) 当执行shutdown immediate时,数据库并不立即关闭,而是在Oracle执行完内部的必要的工作后才关闭,shutdown immediate可以完成shutdown不能对数据库关闭的 *** 作。建议DBA们常用此方法关闭数据库 3、shutdown abort (直接关闭数据库) 这个停止的方法不推荐,因为对于正在访问数据库的会话会被突然终止,可能会造成数据库的数据丢失,并且如果数据库中有大量 *** 作正在执行,这时执行shutdown abort后,重新启动数据库需要很长时间。 举例说明: 1、停Oracle # su – oracle $ lsnrctl stop $ svrmgrl >connectinternal >shutdown immediate >exit 相应的启动Oracle的方法如下: # su – oracle 以ORACLE用户身份进入 $ svrmgrl 打开ORACLE的管理器 >connectinternal 建立库的连接 >startup 启动数据库 >exit 退出管理器 $ lsnrctl start 启动监听 $lsnrctl status 查看监听的状态

关闭的指令是 shutdown immediate ;

如果有正在增删改之类的 *** 作,数据库会等 *** 作完成后进行关机,如果没有进程在做增删改 *** 作则很快就会关闭数据库了。

如果一直没有关闭系统,你可以尝试用 shutdown abort 来强制关闭oracle系统,不过不建议这么做,容易引起数据错乱或者发生未知后果的错误。

在oracle11g中,数据库的审计功能是默认开启的(这和oracle10g的不一样,10g默认是关闭的),\x0d\oracle11gR2的官方文档上写的是错的,当上说default是none,而且是审计到DB级别的,这样就会\x0d\往aud$表里记录统计信息。\x0d\ \x0d\1如果审计不是必须的,可以关掉审计功能;\x0d\\x0d\SQL> show parameter audit_trail;\x0d\\x0d\NAME TYPE VALUE\x0d\------------------------------------ ----------- ------------------------------\x0d\audit_trail string DB\x0d\\x0d\SQL> alter system set audit_trail=none scope=spfile;\x0d\SQL> shut immediate;\x0d\SQL>startup\x0d\2删除已有的审计信息\x0d\可以直接truncate表aud$,\x0d\truncate table SYSAUD$;\x0d\\x0d\3或者将aud$表移到另外一个表空间下,以减少system表空间的压力和被撑爆的风险。\x0d\ \x0d\附:11g中有关audit_trail参数的设置说明:\x0d\AUDIT_TRAIL\x0d\Property Description\x0d\Parameter type String\x0d\SyntaxAUDIT_TRAIL = { none | os | db [, extended] | xml [, extended] }\x0d\Default valuenone\x0d\Modifiable No\x0d\Basic No\x0d\AUDIT_TRAIL enables or disables database auditing\x0d\Values:\x0d\none\x0d\Disables standard auditing This value is the default if the AUDIT_TRAIL parameter was not set \x0d\in the initialization parameter file or if you created the database using a method other than \x0d\Database Configuration Assistant If you created the database using Database Configuration \x0d\Assistant, then the default is db\x0d\os\x0d\Directs all audit records to an operating system file Oracle recommends that you use the os \x0d\setting, particularly if you are using an ultra-secure database configuration\x0d\db\x0d\Directs audit records to the database audit trail (the SYSAUD$ table), except for records \x0d\that are always written to the operating system audit trail Use this setting for a general \x0d\database for manageability\x0d\If the database was started in read-only mode with AUDIT_TRAIL set to db, then Oracle Database \x0d\internally sets AUDIT_TRAIL to os Check the alert log for details\x0d\db, extended\x0d\Performs all actions of AUDIT_TRAIL=db, and also populates the SQL bind and SQL text CLOB-type \x0d\columns of the SYSAUD$ table, when available These two columns are populated only when this \x0d\parameter is specified\x0d\If the database was started in read-only mode with AUDIT_TRAIL set to db, extended, then Oracle \x0d\Database internally sets AUDIT_TRAIL to os Check the alert log for details\x0d\xml\x0d\Writes to the operating system audit record file in XML format Records all elements of the \x0d\AuditRecord node except Sql_Text and Sql_Bind to the operating system XML audit file\x0d\xml, extended\x0d\Performs all actions of AUDIT_TRAIL=xml, and populates the SQL bind and SQL text CLOB-type columns\x0d\ of the SYSAUD$ table, wherever possible These columns are populated only when this parameter \x0d\is specified\x0d\You can use the SQL AUDIT statement to set auditing options regardless of the setting of this \x0d\parameter

1 数据库的启动(STARTUP)

在Startup命令中,可以通过不同的选项来控制数据库的不同启动步骤。

1、STARTUP NOMOUNT

NONOUNT选项仅仅创建一个Oracle实例。读取initora初始化参数文件、启动后台进程、初始化系统全局区(SGA)。Initora文件定义了实例的配置,包括内存结构的大小和启动后台进程的数量和类型等。实例名根据Oracle_SID设置,不一定要与打开的数据库名称相同。当实例打开后,系统将显示一个SGA内存结构和大小的列表,如下所示:

SQL> startup nomount

ORACLE instance started

Total System Global Area 35431692 bytes

Fixed Size 70924 bytes

Variable Size 18505728 bytes

Database Buffers 16777216 bytes

Redo Buffers 77824 bytes

2、STARTUP MOUNT

该命令创建实例并且安装数据库,但没有打开数据库。Oracle系统读取控制文件中关于数据文件和redo log文件的内容,但并不打开这些文件。这种打开方式常在数据库维护 *** 作时使用,如对数据文件的更名、改变redo log以及打开归档方式、执行数据库的full database recovery。在这种打开方式下,除了可以看到SGA系统列表以外,系统还会给出" Database mounted "的提示。

3、STARTUP

该命令完成创建实例、安装实例和打开数据库的所有三个步骤。此时数据库使数据文件和redo log文件在线,通常还会请求一个或者是多个回滚段。这时系统除了可以看到前面Startup Mount方式下的所有提示外,还会给出一个" Database opened "的提示。此时,数据库系统处于正常工作状态,可以接受用户请求。

如果采用STARTUP NOMOUNT或者是STARTUP MOUNT的数据库打开命令方式,必须采用ALTER DATABASE命令来执行打开数据库的 *** 作。例如,如果你以STARTUP NOMOUNT方式打开数据库,也就是说实例已经创建,但是数据库没有安装和打开。这时必须运行下面的两条命令,数据库才能正确启动。

ALTER DATABASE MOUNT;

ALTER DATABASE OPEN;

而如果以STARTUP MOUNT方式启动数据库,则只需要运行下面一条命令即可以打开数据库:

ALTER DATABASE OPEN;

4、其他打开方式

除了前面介绍的三种数据库打开方式选项外,还有另外其他的一些选项。

(1) STARTUP RESTRICT

这种方式下,数据库将被成功打开,但仅仅允许一些特权用户(具有DBA角色的用户)才可以使用数据库。这种方式常用来对数据库进行维护,如数据的导入/导出 *** 作时不希望有其他用户连接到数据库 *** 作数据、数据装载、特定的迁移或者升级 *** 作等。

(2) STARTUP FORCE

该命令其实是强行关闭数据库(shutdown abort)和启动数据库(startup)两条命令的一个综合。该命令仅在关闭数据库遇到问题不能关闭数据库时采用。

(3) ALTER DATABASE OPEN READ ONLY;

该命令在创建实例以及安装数据库后,以只读方式打开数据库。对于那些仅仅提供查询功能的产品数据库可以采用这种方式打开。

2 数据库的关闭(SHUTDOWN)

对于数据库的关闭,有四种不同的关闭选项。

1、SHUTDOWN NORMAL

这是数据库关闭SHUTDOWN命令的确省选项。也就是说如果输入SHUTDOWN这样的命令,也就是执行SHUTDOWN NORNAL命令。

发出该命令后,任何新的连接都将再不允许连接到数据库。在数据库关闭之前,Oracle将等待目前连接的所有用户都从数据库中退出后才开始关闭数据库。采用这种方式关闭数据库,在下一次启动时不需要进行任何的实例恢复。但需要注意的是,采用这种方式,也许关闭一个数据库需要几天时间,或者更长。

2、SHUTDOWN IMMEDIATE

这是常用的一种关闭数据库的方式,想很快地关闭数据库,但又想让数据库干净的关闭,常采用这种方式。

当前正在被Oracle处理的SQL语句立即中断,系统中任何没有提交的事务全部回滚。如果系统中存在一个很长的未提交的事务,采用这种方式关闭数据库也需要一段时间(该事务回滚时间)。系统不等待连接到数据库的所有用户退出系统,强行回滚当前所有的活动事务,然后断开所有的连接用户。

3、SHUTDOWN TRANSACTIONAL

该选项仅在Oracle 8i后才可以使用。该命令常用来计划关闭数据库,它使当前连接到系统且正在活动的事务执行完毕,运行该命令后,任何新的连接和事务都是不允许的。在所有活动的事务完成后,数据库将和SHUTDOWN IMMEDIATE同样的方式关闭数据库。

4、SHUTDOWN ABORT

这是关闭数据库的最后一招,也是在没有任何办法关闭数据库的情况下才不得不采用的方式,一般不要采用。如果下列情况出现时可以考虑采用这种方式关闭数据库。

1、 数据库处于一种非正常工作状态,不能用shutdown normal或者shutdown immediate这样的命令关闭数据库;

2、 需要立即关闭数据库;

3、 在启动数据库实例时遇到问题;

所有正在运行的SQL语句都将立即中止。所有未提交的事务将不回滚。Oracle也不等待目前连接到数据库的用户退出系统。下一次启动数据库时需要进行实例恢复,因此,下一次启动可能比平时需要更多的时间。

下表为上述四种不同关闭数据库的区别和联系。

关闭方式 Abort Immediate Transaction Nornal

允许新的连接 × × × ×

等待直到当前会话中止 × × × √

等待直到当前事务中止 × × √ √

强制CheckPoint,关闭所有文件 × √ √ √

以上就是关于Oracle数据库基本常用命令汇总全部的内容,包括:Oracle数据库基本常用命令汇总、如何用语句关闭oracle数据库、如何关闭金蝶系统ORACLE数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9420364.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存