一,启动
1.#su - oracle              切换到oracle用户且切换到它的环境
2.$lsnrctl status          查看监听及数据库状态
3.$lsnrctl start            启动监听
4.$sqlplus / as sysdba      以DBA身份进入sqlplus
5.SQL>startup                启动db
二,停止
1.#su - oracle              切换到oracle用户且切换到它的环境
2.$lsnrctl stop            停止监听
3.$sqlplus / as sysdba      以DBA身份进入sqlplus
4.SQL>SHUTDOWN IMMEDIATE    关闭db
其中startup和shutdowm还有其他一些可选参数,有兴趣可以另行查阅
三,查看初始化参数及修改
1.#su - oracle                切换到oracle用户且切换到它的环境
2.$sqlplus / as sysdba        以DBA身份进入sqlplus
3.SQL>show parameter session;  查看所接受的session数量
>>>>>>>>>>####
Oracle process与session2008年12月29日 星期一 15:47
Connected to Oracle Database 10g Release 10.1.0.5.0
Connected as ifsapp
SQL> show parameter session
NAME                              TYPE      VALUE
-
----------------------------------- ----------- ------------------------------
java_max_sessionspace_size        integer  0
java_soft_sessionspace_limit      integer  0
license_max_sessions              integer  0
license_sessions_warning          integer  0
logmnr_max_persistent_sessions    integer  1
session_cached_cursors            integer  0
session_max_open_files            integer  10
sessions                          integer  225
shared_server_sessions            integer 
SQL> show parameters processes;
NAME                              TYPE      VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes                    integer  0
db_writer_processes                integer  1
gcs_server_processes              integer  0
job_queue_processes                integer  3
log_archive_max_processes          integer  2
processes                          integer  200
SQL> alter system set processes=600 scope=both;
SQL>
SQL> alter system set processes=600 scope=both;
alter system set processes=600 scope=both
ORA-02095: specified initialization parameter cannot be modified
SQL> alter system set sessions=600 scope=both;
alter system set sessions=600 scope=both
ORA-02095: specified initialization parameter cannot be modified
SQL>
SQL> alter system set processes=600 scope=spfile;
System altered
SQL> show parameters processes;
NAME                              TYPE      VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes                    integer  0
db_writer_processes                integer  1
gcs_server_processes              integer  0
job_queue_processes                integer  3
log_archive_max_processes          integer  2
processes                          integer  200
SQL> alter system set processes=600 scope=memory;
alter system set processes=600 scope=memory
ORA-02095: specified initialization parameter cannot be modified
重启数据库之后生效:
SQL> show parameters processes;
NAME                              TYPE      VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes                    integer  0
db_writer_processes                integer  1
gcs_server_processes              integer  0
job_queue_processes                integer  3
log_archive_max_processes          integer  2
processes                          integer  600
SQL> show parameter session
NAME                              TYPE      VALUE
------------------------------------ ----------- ------------------------------
java_max_sessionspace_size        integer  0
java_soft_sessionspace_limit      integer  0
license_max_sessions              integer  0
license_sessions_warning          integer  0
logmnr_max_persistent_sessions    integer  1
session_cached_cursors            integer  0
session_max_open_files            integer  10
sessions                          integer  665
shared_server_sessions            integer   
修改Oracle process 和 session 的方法
先备份spfile
1.通过SQLPlus修改
Oracle的sessions和processes的关系是
sessions=1.1*processes + 5
使用sys,以sysdba权限登录:
SQL> show parameter processes;
NAME TYPE VALUE
------------------------------------ ----------- ---------------------------------------
aq_tm_processes integer 1
db_writer_processes integer 1
job_queue_processes integer 10
log_archive_max_processes integer 1
processes integer 150
SQL> alter system set processes=400 scope = spfile;
系统已更改。
SQL> show parameter processes;
NAME TYPE VALUE
------------------------------------ ----------- -----------------------------------------
aq_tm_processes integer 1
db_writer_processes integer 1
job_queue_processes integer 10
log_archive_max_processes integer 1
processes integer 150
SQL> create pfile from spfile;
文件已创建。
重启数据库,OK!
【注:sessions是个派生值,由processes的值决定,公式sessions=1.1*process + 5】
2.通过修改oracle配置文件进行修改
修改SPFILEORCL.ORA文件中的processes的值。8.1.5中是a文件,在9i中修改a文件是无效的,这个文件由于是一个二进制的文件,不能直接使用notepad此类的编辑器打开。
否则会报错误ORA-27101 Shared memory realm does not exist。使用UltraEdit或者EditPlus之类的可以编辑二进制文件的编辑器打开此文件(直接编辑二进制文件),然后在Windows服务中重新启动Oracle服务器即可。
3.通过Oracle Enterprise Manager Console在图形化管理器中修改
a.以系统管理
员的身份登入
b.进入数据库的例程-配置-一般信息-所有初始化参数
c.修改processes的值
d.Sessions的值由公式sessions=1.1*process + 5派生得到
一个process可以有0个,1个或多个session
=============================================
Oracle中系统process与session的关系
在实际的应用中,Shared Server中的Process与Oracle数据库中的Session并不是一一对应的,Shared Server中的Process(一个)对应着Oracle中的一个或者一个以上的Session。
  在dedicated server机器上的测试如下:
  数据库的session和操作系统process是对应的。
  这表示一个session对应一个process,但是一个process未必对应一个session。
  大家可以通过SELECT spid
  FROM v$process
  WHERE NOT EXISTS ( SELECT 1
  FROM v$session
  WHERE paddr = addr); 查看
  或
  SQL> select count(*) from v$process;
  COUNT(*)
  ----------
  53
  SQL> select count(*) from v$session;
  COUNT(*)
  ----------
  50
oracle10g中只要指定processes,sessions就会自动计算出,所以不需要指定sessions也可,除非对sessions有特殊要求,要求其比oracle自动计算出的sessions要大,那么就需要手动指定sessions了
>>>>>>>>>>>##
4.SQL>alter system set shared_servers=10;  将shared_servers的数量设置为10
四.数据库连接数目
其中一个数据库连接需要一个session,它的值由processes决定,session与processes通常有以下关系:
session = 1.1 * processes + 5
不过这也不是绝对的,还要受到CPU和内存等硬件条件的限制。另外processes和session不可以通过a
lter system语句直接修改,只可以修改服务器参数文件来更改(Server Parameter File)。如果存在一个server parameter file,通过alter system语句所作的更改将会被持久化到文件中。
首先以Oracle用户登录
1、 $/oracle/oracle/app/product/101/bin/dbstart:启动数据库。
2、 $/oracle/oracle/app/product/101/bin/dbshut:关闭数据库。
3、 $/oracle/oracle/app/product/101/bin/dbca:数据库配置助理,进行数据库安装、删除和修改。
4、 $/oracle/oracle/app/product/101/bin/netca:数据库网络服务配置管理。
5、 $/oracle/oracle/app/product/101/bin/netmgr:数据库网络服务和监听配置助理。
6、 $/oracle/oracle/app/product/101/bin/sqlplus:可运行SQL,进行数据库操作,并可起停数据库。运行sqlplus命令,输入sys用户和口令登陆以后,运行如下命名:
〉shutdown immediate 立即关闭数据库
〉startup 启动数据库
7、 $/oracle/oracle/app/product/101/bin/lsnrctl start:启动数据库监听
$/oracle/oracle/app/product/101/bin/lsnrctl stop:关闭数据库监听
$/oracle/oracle/app/produ
ct/101/bin/lsnrctl status:察看数据库监听运行状态
Oracle数据库命令速查
Oracle数据库命令速查
Oracle数据库命令速查
1.        日志管理
1.1.        强制日志切换(forcing log switches)
sql> alter system switch logfile;
1.2.        强制执行检查点(forcing checkpoints)
sql> alter system checkpoint;
1.3.        增加一个重做日志组(adding online redo log groups)
sql> alter database add logfile [group 4]sql> ('/disk3/log4a.rdo','/disk4/log4b.rdo') size 1m;
1.4.        增加一个重做日志文件(adding online redo log members)
sql> alter database add logfile member
sql> '/disk3/log1b.rdo' to group 1,
sql> '/disk4/log2b.rdo' to group 2;
1.5.        改变重做日志文件名(changes the name of the online redo logfile)
sql> alter database rename file 'c:/oracle/oradata/oradb/redo01.log'
sql> to 'c:/oracle/oradata/redo01.log';
1.6.        删除重做日志组(drop online redo log groups)
linux登录命令sql> alter database drop logfile group 3;
1.7.        删除重做日志文件(drop online redo log members)
sql> alter database drop logfile member 'c:/oracle/oradata/redo01.log';
1.8.        清空重做日志文件(clearing online redo log files)
sql> alter database clear [unarchived] logfile 'c:/oracle/log2a.rdo';
1.9.        使用logminer分析重做日志文件(using logminer analyzing redo logfiles)
a. in a specify utl_file_dir = ' '
b. sql> execute dbms_logmnr_d.build('a','c:\oracle\oradb\log');
c. sql> execute dbms_logmnr_add_logfile('c:\oracle\oradata\oradb\redo01.log',
sql> w);
d. sql> execute dbms_logmnr.add_logfile('c:\oracle\oradata\oradb\redo02.log',
sql> dbms_logmnr.addfile);
e. sql> execute dbms_logmnr.start_logmnr(dictfilename=>'c:\oracle\oradb\a');
f. sql> select * from v$logmnr_contents(v$logmnr_dictionary,v$logmnr_parameters
sql> v$logmnr_logs);
g. sql> execute d_logmnr;
2.        表空间管理
2.1.        创造表空间(create tablespaces)
sql> create tablespace ts_name datafile 'c:\oracle\oradata\file1.dbf' size 100m ,
sql>'c:\oracle\oradata\file2.dbf' size 100m minimum extent 550k [logging/nologging]sql> default storage (initial 500k next 500k maxextents 500 pctinccease 0)
sql> [online/offline] [permanent/temporary] [extent_management_clause]
2.2.        创建本地管理的表空间(locally managed tablespace)
sql> create tablespace user_data datafile 'c:\oracle\oradata\user_data01.dbf'
sql> size 500m extent management local uniform size 10m;
2.3.        创建临时表空间(temporary tablespace)
sql> create temporary tablespace temp tempfile 'c:\oracle\oradata\temp01.dbf'
sql> size 500m extent management local uniform size 10m;
2.4.        改变表空间的存储参数(change the storage setting)
sql> alter tablespace app_data minimum
extent 2m;
sql> alter tablespace app_data default storage(initial 2m next 2m maxextents 999);
2.5.        使表空间离线或连线(taking tablespace offline or online)
sql> alter tablespace app_data offline;
sql> alter tablespace app_data online;
2.6.        设置表空间为只读/可写模式(read_only tablespace)
sql> alter tablespace app_data read only|write;
2.7.        删除表空间(droping tablespace)
sql> drop tablespace app_data including contents;
2.8.        允许数据文件自动扩展(enableing automatic extension of data files)
sql> alter tablespace app_data add datafile 'c:\oracle\oradata\app_data01.dbf' size 200m
sql> autoextend on next 10m maxsize 500m;
2.9.        手工改变数据文件的大小(change the size fo data files manually)
sql> alter database datafile 'c:\oracle\oradata\app_data.dbf' resize 200m;
2.10.        改名表空间中的数据文件(Moving data files: alter tablespace)
sql> alter tablespace app_data rename datafile 'c:\oracle\oradata\app_data.dbf
sql> to 'c:\oracle\app_data.dbf';
2.11.        改变数据库中的数据文件(moving data files:alter database)
sql> alter database rename file 'c:\oracle\oradata\app_data.dbf' to 'c:\oracle\app_data.dbf';
3.        表
3.1.        创建表(create a table)
sql> create table table_name (column datatype,column datatype]....)
sql> tablespace tablespace_name [pctfree integer] [pctused integer]
sql> [initrans integer] [maxtrans integer]sql> storage(initial 200k next 200k pctincrease 0 maxextents 50)
sql> [logging|nologging] [cache|nocache]
3.2.        复制一个已存在的表(copy an existing table)
sql> create table table_name [logging|nologging] as subquery
3.3.        创建一个临时表(create temporary table)
sql> create global temporary table xay_temp as select * from xay;
on commit preserve rows/on commit delete rows
3.4.        pctfree和pctused参数计算公式
pctfree = (average row size - initial row size) *100 /average row size
pctused = 100-pctfree- (average row size*100/available data space)
这是标准的计算公式。
PCTFREE:指定表内每个数据块中空间的百分比。 PCTFREE 的值必须介于 0 和 99 之间。如果值为零,表示可以通过插入新行来填充整个块。缺省值为 10。此值表示每个块中保留着 10% 的空间,用于更新现有的行以及插入新行,每个块最多可填充到 90%。
PCTUSED:指定为表内每个数据块维护的已用空间的最小百分比。如果一个块的已用空间低于 PCT
USED,则可在该块中插入行。PCTUSED 的值为介于 0 和 99 之间的整数,缺省值为 40。 
结合 PCTFREE 和 PCTUSED 就可以确定将新行插入到现有数据块中,还是插入到新块中。这两个参数值的和必须小于或等于 100。使用这两个参数可以更有效地利用表内的空间。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。

发表评论