做为数据库开发和管理人员,日常工作用到最多的工具可能就是PLSQL和SQLPLUS了,我在工作中一般编写SQL语句或写一些包、存储过程之类的代码是在PLSQL中完成的(挺喜欢它的提示和排版的),其它的基本上都是利用SQLPLUS了。既然我们如此多的使用打了SQLPLUS,那么我们就很有必要掌握它的一些常用的命令了,在本篇博文中我会列出一些我常用命令,大家可以积极发言进行补充。 数据库管理人员经常会使用SYS用户以SYSDBA进行登录,如果有机会直接在服务器端登录是最好的,如果没有那需要在客户端登录怎么办呢?方法很简单,只需要在命令窗口使用:“sqlplus 用户名/密码@连接 as sysdba”就可以了。那如果实在服务器端呢?实际上就更简单了,在服务器端使用的是操作系统验证的方式登录的,所以有没有用户名、密码、和连接实际上都是一样的,不信我们来看,我们以三种不同的当时登录: sqlplus / as sysdba sqlplus ccc/ccc@orcl as sysdba sqlplus ss/cc as sysdba
点击(此处)折叠或打开
点击(此处)折叠或打开
点击(此处)折叠或打开
以sysdba登录后能做什么呢?我们来看: 1、启动数据库:startup startup 默认参数为open,并且默认以独占方式装入数据库。 正常使用startup启动就可以了,但是总有个别情况,那我们来看看它的参数吧: startup; 启动实例装入并打开数据库,允许任何用户连接到数据库并执行数据库访问操作。 startup nomount; 启动实例但不装入数据库,一般只有在数据库创建的时候使用。 startup mount; 启动实例装入数据库但不打开数据库,允许用户执行一些维护工作,如:重命名数据文件、添加和撤消以及重命名重做日志文件、启动和禁止重做日志归档、执行全部的数据库恢复。 startup restrict; 限制在数据库启动时的用户访问,这种模式只允许DBA进行:执行结构维护、执行数据库文件的导入导出、执行数据装载、临时阻止典型用户使用数据。 startup force; 强行启动实例,如果一个实例正在启动,该命令可以重新启动。 startup open recover; 启动实例,装入数据库,并启动介质恢复。 如果用户的oracle服务器允许多个事例来并发的访问一个数据库(oracle 并行服务器选项),应选择独占或并行装入数据库。 startup open orcl pfile=initorcl.ora parallel; 并行装入数据库。 strartup open orcls pfile=initorcls.ora execlusive restrict; 独占装入数据库。 2、关闭数据库:shutdown shutdown normal; 不允许产生新的连接、等待当前所有会话结束、等待当前存在的所有事务结束、做一个检查点并关闭数据文件,启动时不需要实例恢复。 shutdown transactional; 不允许产生新的连接、不等待当前存在会话结束、等待当前存在的所有事务结束、做一个检查点并关闭数据文件,启动时不需要实例恢复。 shutdown immediate; 不允许产生新的连接、不等待当前存在会话结束、不等待当前存在的事务结束、做一个检查点并关闭数据文件,没有结束的事务是自动rollback的,启动时不需要实例恢复。 shutdown abort; 不允许产生新的连接、不等待当前存在会话结束、不等待当前存在的事务结束、不做检查点且没有关闭数据文件,启动时自动进行实例恢复。 3、更改数据库状态为打开/装载/备份,更改字符集 代码就不一一罗列了,基本上就是alter system set ... = ... scope=..; cope分为memory、spfile、both。 alter tablespace .. read wrte; .... .... 4、创建用户 create user test identified by test; 5、授权 grant dba to test; 6、创建表空间: create smallfile tablespace data3 logging datafile 'd:\oradata\ora10g\data3.dbf' size 32767m reuse autoextend on next 10240k maxsize unlimited extent management local segment space management auto; 7、给用户分配表空间: alert user test default tablespace data3; 8、创建spfile: create spfile from pfile; 9、日志归档和恢复。
不再废话了,看下其他的:
show all --查看所有系统变量值 define -- 用来定义常量,如: define val=‘a’; select &val from dual; spool d:\log.txt; --将执行结果记录到文件 spool off; -- 关闭信息记录 @d:\sql.sql -- 用来执行外部文件,如果在文件内引用其他文件,那么需要使用两个@,如:@@source\create_table.sql; a where rownum = 1; -- 添加文本到缓冲区当前行尾,a后面紧跟两个空格, 如当前执行的是:select * from user_tables; 执行结果为:select * fom user_tables where rownum = 1; c --替换,如:c/*/table_name,执行结果为select table_name from user_tables where rownum = 1; del --删除当前缓冲区的语句,可进行参数设置,如: del 2; i --添加一行到缓冲区 l --显示当前缓冲的所有语句,可进行参数设置,如:l 2;显示当前缓冲的第2条语句,l 1 3;显示当前缓冲区1到3条语句。 run 或者 / 或者 r -- 执行当前缓冲区的语句,我测试过,如果当前缓冲区存在多条的话,是执行失败的。 edit -- 如:edit s 如果当前目录下不存在s.sql文件,则系统自动生成s.sql文件,编辑后,保存退出,再次使用只需要用:@s 即可。 save -- 如:save a 将当前缓冲区的语句保存到文件。 get -- 如:get a 读取存盘的sql文件 start -- 如:start a 运行调入内存的sql文件 exit -- 退出当前sqlplus desc -- 如:desc user_tables; 显示表结构 clear screen -- 清空当前窗口
其他补充: |