首先输入命令:sqlplus '/as sysdba' 或者
sqlplus /nolog
conn sys/manage as sysdba;这个命令的作用是
再输入开启服务命令:startup;
或者输入关闭服务命令:shutdown abort 或者 shutdown immediate;
shutdown abort 的时候,跟kill 进程是一样的效果 数据库立即关闭,这个时候文件状态可能不一致 因为正常关闭数据库会同步校验各文件,使得重新启动的时候文件时间点一致并且不用进行崩溃恢复 若检查点信息一致,则做崩溃恢复 若检查点信息不一致(正好在更新文件头)则需要做介质恢复 这些问题都好处理,最怕的问题是这个时候系统有大量IO,结果这样造成写的突然中断,碰巧造成文件块的逻辑坏块,那麻烦比较大一些,尤其是系统表空间的block损坏 虽然shutdown abort 出错的几率很小,1000个人可能只有一个人碰到,但是我们还是要小心。 正确的处理流程是,shutdown immediate,若数据库迟迟不能down下来,在os上观察IO状况,几乎没有io的时候,另开一窗口shutdown abort,几乎不会出问题了
本文章帮你充分认识SQLPLUS命令。
remark:告诉SQLPLUS接下来的文字是注释,不是命令。
set haedsep:标题分隔符标识一个告诉SQLPLUS将一个标题分为两行或更多行的字符。
ttitle:设置报表每一页的头标题。
btitle:设置报表每一页的尾标题。
column:给SQLPLUS各种关于列的标题、格式和处理的指令。
break on:告诉SQLPLUS在报表的各部分间插入空格,或者将小计和总计断开。
compute sum:令SQLPLUS计算小计。
set linesize:为报表的行设置最大字符数。
set pagesize:为页设置最大行数。
set newpage:设置页与页之间的空行数。
spool:将通常在屏幕上显示的报表移入一个文件,以便打印。
/**/ 在SQL项内标记一个注释的开头和结尾。类似于remark。
-- 在SQL项内标记联机注释所的开始。将该标记开始到本行末尾的一切内容都视为注释。类似于remark。
set pause:使屏幕显示在页与页之间停顿。
save:把正在建立的SQL查询保存到一个选中的文件中。
host:向主操作系统发送命令。
start或@:告诉SQLPLUS执行已经存储到文件中的指令。
edit:使你迅速离开SQLPLUS并进入所选择的编辑器。
define_editor:告诉SQLPLUS你所选择的编辑器的名字。
exit或quit:终止SQLPLUS。
一个简单的报表例子:
activity.lst SQL> SQL> select Name, Title, CheckoutDate, ReturnedDate, 2 ReturnedDate-CheckoutDate as DaysOut /*Count Days*/ 3 from BOOKSHELF_CHECKOUT 4 order by Name,CheckoutDate; Mon Aug 28 page 1 Checkout Log for 1/1/02-3/31/02 Days NAME TITLE CHECKOUTDATE RETURNEDDATE Out ------------ -------- ------------ ------------ ---- DORAH TALBOT EITHER/OR 02-JAN-02 10-JAN-02 8.00 POLAR EXPRESS 01-FEB-02 15-FEB-02 14.00 GOOD DOG, CARL 01-FEB-02 15-FEB-02 14.00 MY LEDGER 15-FEB-02 03-MAR-02 16.00 ******************** ------- avg 13.00 EMILY TALBOT ANNE OF GREEN GABLES 02-JAN-02 20-JAN-02 18.00 MIDNIGHT MAGIC 20-JAN-02 03-FEB-02 14.00 HARRY POTTER AND 03-FEB-02 14-FEB-02 11.00 THE GOBLET OF FIRE ******************** ------- avg 14.33 FRED FULLER JOHN ADAMS 01-FEB-02 01-MAR-02 28.00 TRUMAN 01-MAR-02 20-MAR-02 19.00 ******************** ------- avg 23.50 GERHARDT KENTGEN WONDERFUL LIFE 02-JAN-02 02-FEB-02 31.00 MIDNIGHT MAGIC 05-FEB-02 10-FEB-02 5.00 THE MISMEASURE OF 13-FEB-02 05-MAR-02 20.00 MAN ******************** ------- avg 18.67 JED HOPKINS INNUMERACY 01-JAN-02 22-JAN-02 21.00 TO KILL A 15-FEB-02 01-MAR-02 14.00 MOCKINGBIRD ******************** ------- avg 17.50 PAT LAVAY THE SHIPPING NEWS 02-JAN-02 12-JAN-02 10.00 THE MISMEASURE OF 12-JAN-02 12-FEB-02 31.00 MAN ******************** ------- avg 20.50 ROLAND BRANDT THE SHIPPING NEWS 12-JAN-02 12-MAR-02 59.00 THE DISCOVERERS 12-JAN-02 01-MAR-02 48.00 WEST WITH THE NIGHT 12-JAN-02 01-MAR-02 48.00 ******************** ------- avg 51.67 ------- avg 22.58 from the Bookshelf SQL> start activity.sql rem Bookshelf activity report set headsep ! ttitle 'Checkout Log for 1/1/02-3/31/02' btitle 'from the Bookshelf' column Name format a20 column Title format a20 word_wrapped column DaysOut format 999.99 column DaysOut heading 'Days!Out' break on Name skip 1 on report compute avg of DaysOut on Name compute avg of DaysOut on report set linesize 100 set pagesize 60 set newpage 0 set feedback off spool activity.lst select Name, Title, CheckoutDate, ReturnedDate, ReturnedDate-CheckoutDate as DaysOut /**//*Count Days*/ from BOOKSHELF_CHECKOUT order by Name,CheckoutDate; spool off