1
2
3
|
#vi /etc/selinux/config
SELINUX=disabled
#setenforce
0
|
1
2
|
Service iptables stop
Chkcofnig iptalbes off
|
1
2
3
4
5
|
# mkdir /u01
# /usr/sbin/groupadd oinstall
# /usr/sbin/groupadd dba
# useradd -g oinstall -G dba -d /u01/oracle oracle
# passwd oracle
|
1
2
3
4
5
6
7
|
ORACLE_BASE=
/u01
ORACLE_HOME=$ORACLE_BASE
/oracle
ORACLE_SID=xfs
PATH=$ORACLE_HOME
/bin
:$PATH
LD_LTBRARY_PATH=$ORACLE_HOME
/lib
:$LD_LTBRARY_PATH
DISPLAY=127.0.0.1:0.0
export
ORACLE_BASE ORACLE_HOME ORACLE_SID PATH LD_LTBRARY_PATH DISPLAY
|
1
2
3
4
|
oracle soft nproc
2047
oracle hard nproc
16384
oracle soft nofile
1024
oracle hard nofile
65536
|
1
|
session required pam_limits.so
|
1
2
3
4
|
if
[ $USER =
"oracle"
]; then
ulimit -u
16384
ulimit -n
65536
fi
|
1
2
3
4
5
6
7
8
9
10
11
|
fs.aio-max-nr =
1048576
fs.file-max =
6815744
kernel.shmall =
2097152
kernel.shmmax =
536870912
kernel.shmmni =
4096
kernel.sem =
250
32000
100
128
net.ipv4.ip_local_port_range =
9000
65500
net.core.rmem_default =
262144
net.core.rmem_max =
4194304
net.core.wmem_default =
262144
net.core.wmem_max =
1048586
|
1
|
$ netca
|
1
|
$ dbca
|
Character Sets
/u01/等等。。。 会发现多了很多文件。
16、然后可以修改 vi /etc/inittab 让 centos linux 启动的时候 不进入 图形界面
直接进入 字符界面
17、用 oracle 用户 远程登录, 然后
1
2
3
|
$ sqlplus /nolog
SQL> conn /
as
sysdba
Connected to an idle instance.
|
Sqlplus /nolog 是以不连接数据库的方式启动sql*plus
Connect /as sysdba 是以DBA身份连接到oracle
Startup就可以启动了。
不过oracle启动模式有3种:
lStartup nomount (nomount模式)启动实例不加载数据库。
lStartup mount (mount模式)启动实例加载数据库但不打开数据库
lStartup (open 模式)启动实例加载并打开数据库,就是我们上面所用的命令
Nomount模式中oracle仅为实例创建各种内存结构和服务进程,不会打开任何数据库文件,
所以说:
1)创建新数据库
2)重建控制文件
这2种操作都必须在这个模式下进行。
Mount模式中oracle只装载数据库但不打开数据库,所以说:
1)重命名数据文件
2)添加、删除和重命名重做日子文件
3)执行数据库完全恢复操作
4)改变数据库的归档模式
这4种操作都必须在这个模式下进行
Open模式(就是我们上面的startup不带任何参数的)正常启动。
当然这3种模式之间可以转换:
Alter database mount(nomount模式)—〉alter database open(mount 模式)—〉(open模式)
当然还有其它一些情况,在我们open模式下可以将数据库设置为非受限状态和受限状态
在受限状态下,只有DBA才能访问数据库,所以说:
1)执行数据导入导出
2)使用sql*loader提取外部数据
3)需要暂时拒绝普通用户访问数据库
4)进行数据库移植或者升级操作
这4种操作都必须在这个状态下进行
使用alter system disable restricted session命令即可以将受限状态改变为非受限状态。
使用alter database open read only可以使数据库进入只读状态。
使用alter database open read write 可以使数据库进入读写状态。
当然在某些情况下可能是用上述各种启动方式都无法成功启动数据库,这个时候就要使用startup force命令来强行启动数据库。当然谁都不想碰到这种情况:)
***/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
SQL> startup
[oracle@localhost ~]$ sqlplus /nolog
SQL> conn /
as
sysdba
Connected.
SQL>
create
table
testUser( id
integer
,
name
char
(10));
Table
created.
SQL>
insert
into
testUser
values
(0,
'Jack'
);
1 row created.
SQL>
commit
;
Commit
complete.
SQL>
select
*
from
testUser;
ID
NAME
---------- ----------
0 Jack
|
1)正常关闭 shutdown
2) 立即关闭 shutdown immediate
3) 关闭事务 shutdown transactional
4) 强行关闭 shutdown abort,当然谁都不想碰到这种情况。
1
2
|
SQL> shutdown immediate
SQL> quit
|
Oracle启动&停止脚本
1. 修改Oracle系统配置文件:/etc/oratab,使Oracle 自带的dbstart和dbshut发挥作
用。
# vi /etc/oratab
xfs:/u01/oracle:Y (备注,默认是N,改成Y)
2. 在 /etc/init.d/ 下创建文件oracle,内容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
#!/bin/sh
#chkconfig: 35 80 10
# description: Oracle auto start-stop script.
#
# Set ORA_HOME to be equivalent to the $ORACLE_HOME
# from which you wish to execute dbstart and dbshut;
#
# Set ORA_OWNER to the user id of the owner of the
# Oracle database in ORA_HOME.
ORA_HOME=
/u01/oracle
ORA_OWNER=oracle
if
[ ! -f $ORA_HOME
/bin/dbstart
]
then
echo
"Notice:Oracle had startup: cannot start now"
exit
fi
case
"$1"
in
'start'
)
# Start the Oracle databases:
echo
"Starting Oracle Databases ... "
echo
"------------------------------------------"
>>
/var/log/oracle
date
+
" %T %a %D : Starting Oracle Databases as part of system up."
>>
/var/log/oracle
echo
"---------------------------------------------"
>>
/var/log/oracle
su
- $ORA_OWNER -c
"$ORA_HOME/bin/dbstart"
>>
/var/log/oracle
echo
"Done"
# Start the Listener:
echo
"Starting Oracle Listeners ... "
echo
"---------------------------------------------"
>>
/var/log/oracle
date
+
" %T %a %D : Starting Oracle Listeners as part of system up."
>>
/var/log/oracle
echo
"---------------------------------------------"
>>
/var/log/oracle
su
- $ORA_OWNER -c
"$ORA_HOME/bin/lsnrctl start"
>>
/var/log/oracle
echo
"Done."
echo
"----------------------------------------------"
>>
/var/log/oracle
date
+
" %T %a %D : Finished."
>>
/var/log/oracle
echo
"-----------------------------------------------"
>>
/var/log/oracle
touch
/var/lock/subsys/oracle
;;
'stop'
)
# Stop the Oracle Listener:
echo
"Stoping Oracle Listeners ... "
echo
"---------------------------------------------"
>>
/var/log/oracle
date
+
" %T %a %D : Stoping Oracle Listener as part of system down."
>>
/var/log/oracle
echo
"--------------------------------------------"
>>
/var/log/oracle
su
- $ORA_OWNER -c
"$ORA_HOME/bin/lsnrctl stop"
>>
/var/log/oracle
echo
"Done."
rm
-f
/var/lock/subsys/oracle
# Stop the Oracle Database:
echo
"Stoping Oracle Databases ... "
echo
"---------------------------------------------"
>>
/var/log/oracle
date
+
" %T %a %D : Stoping Oracle Databases as part of system down."
>>
/var/log/oracle
echo
"---------------------------------------------"
>>
/var/log/oracle
su
- $ORA_OWNER -c
"$ORA_HOME/bin/dbshut"
>>
/var/log/oracle
echo
"Done."
echo
""
echo
"----------------------------------------------"
>>
/var/log/oracle
date
+
" %T %a %D : Finished."
>>
/var/log/oracle
echo
"---------------------------------------------"
>>
/var/log/oracle
;;
'restart'
)
$0 stop
$0 start
;;
esac
|
3. 改变文件权限
1
|
# chmod
755
/etc/init.d/oracle
|
4. 添加服务
1
|
# chkconfig --level
35
oracle on
|
5. 需要在关机或重启机器之前停止数据库,做一下操作
1
2
|
# ln -s /etc/init.d/oracle /etc/rc0.d/K01oracle
//关机
# ln -s /etc/init.d/oracle /etc/rc6.d/K01oracle
//重启
|
6. 使用方法
1
2
3
|
# service oracle start
//启动oracle
# service oracle stop
//关闭oracle
# service oracle restart
//重启oracle
|
7、如果使用网页管理数据库,需要运行 emctl start dbconsole