如何在linux下启动和关闭ORCALE数据库

首先输入命令:sqlplus '/as sysdba' 或者
              sqlplus /nolog
            conn sys/manage as sysdba;这个命令的作用是
再输入开启服务命令:startup;

或者输入关闭服务命令:shutdown abort   或者  shutdown immediate;

 

 

shutdown abort对数据库的影响
shutdown abort 的时候,跟kill 进程是一样的效果
数据库立即关闭,这个时候文件状态可能不一致
因为正常关闭数据库会同步校验各文件,使得重新启动的时候文件时间点一致并且不用进行崩溃恢复

若检查点信息一致,则做崩溃恢复
若检查点信息不一致(正好在更新文件头)则需要做介质恢复

这些问题都好处理,最怕的问题是这个时候系统有大量IO,结果这样造成写的突然中断,碰巧造成文件块的逻辑坏块,那麻烦比较大一些,尤其是系统表空间的block损坏

虽然shutdown abort 出错的几率很小,1000个人可能只有一个人碰到,但是我们还是要小心。
正确的处理流程是,shutdown immediate,若数据库迟迟不能down下来,在os上观察IO状况,几乎没有io的时候,另开一窗口shutdown  abort,几乎不会出问题了
 
 
SQLPLUS命令

本文章帮你充分认识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

你可能感兴趣的:(sql,linux,数据库,report,express,报表)