sql脚本编写教程 面向DBA的Linux_Shell脚本编写

11/28 05:09:55 来源网站:辅助卡盟网

您可能有一个并非特定于某个数据库的要求。您可能在一台计算机上安装了多个数据库。建议您不要使用单个数据库满足此要求,因为那样会引发潜在的安全性问题。在这些情况下,shell脚本提供了一种既可以满足此要求又不会将进程与单个数据库关联的方法。什么情况下不使用Shell脚本Oracle数据库包含了超出RDBMS传统定义的功能。与软件的任何其他部分一样,它使用操作系统提供的资源,但它所“看到”并“更改”其环境的程度远远超过了其他软件。SQLOracle的固定视图从数据库内部提供了系统视图,而shell脚本从数据库外部提供了系统视图。Shell脚本并不是适用于所有问题的解决方案。必须意识到,操作系统的许多方面可以从数据库内部进行监视和修改。可以使用Oracle前缀的视图)确定计算机的主机名(v$instance)或数据库正在其中运行的平台的名称(v$database)。还可以通过这种方式确定与数据库相关的文件的位置和其他属性。可以直接从数据库中查询数据文件(v$datafile、dba_data_files)、临时文件(v$tempfile、dba_temp_files)、重做日志(v$logfile)、存档日志(v$archived_log)和控制文件(v$controlfile)的位置和其他属性。

可以通过该视图以及通过查看某些init.ora参数(db_recovery_file_dest、db_recovery_file_dest_size)确定有关闪回恢复区($recovery_file_dest)的信息。还可以查询进程(v$process)和内存(v$sga、v$sgastat等)的状态。有各种内置的PL/SQL程序包,并能够创建允许对底层OS进行其他访问的Java数据库对象。如果您正在考虑为一个需要大量数据库访问的任务编写脚本,则脚本可能并不是最佳选择。本文的稍后部分将介绍如何使用SQL*Plus访问数据库,但在很多情况下,使用其他语言可以更好地解决此问题。下表归纳了可以从数据库中访问的信息:服务器/操作系统信息服务器标识典型查询附注实例运行在的主机的名称selecthost_namefromv$instance;也可以通过从bash运行以下命令来获得该信息:hostname操作系统平台selectplatform_namefromv$database-(10g)如果运行uname–s,则将返回类似信文件信息Oracle文件位置典型查询附注控制文件selectnamefromv$controlfile;数据库控制文件的位置。

init.ora的参数control_files也包含该信息。数据文件selectfile_namefromDba_data_files;数据库数据文件的位临时文件selectfile_namefrom Dba_temp_files; 数据库临时文件的位 日志文件select member from v$logfile; 重做日志的位置 归档日志 select name from v$archived_log 归档重做日志的位置。 init.ora log_archive_dest_n也包含该信息。如果数 据库不在 Archivelog 模式下,则该查询将不 返回结果。 闪回恢复区 select name from v$recovery_file_dest Oracle 10g 安装用作 闪回恢复区的目录。 init.ora 也包含该信息。由参数指示的文 件系统上的其他 访问点 select fromv$parameter where value like valuelike 根据Oracle 数据库 安装和版本的不同,该 查询的结果可能迥然 不同。可能返回的参数 spfilestandby_archive_des utl_file_dirbackground_dump_d est user_dump_dest core_dump_dest audit_file_dest dg_broker_config_file 用编程的方式访问文件系统 select directory_path from dba_directories OracleUTL_FILE_DIR 参数 据库对象访问标准数据库功能以外的文件。

    暂无相关资讯
sql脚本编写教程 面向DBA的Linux_Shell脚本编写