posts - 15, comments - 0, trackbacks - 0, articles - 5
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

Redhat Linux 6.4下Oracle 10g安装配置手册

Posted on 2018-03-03 05:59 eamon 阅读(416) 评论(0)  编辑 收藏 引用 所属分类: Linux系统

Redhat Linux 6.4Oracle 10g安装配置手册

 

1、安装准备

1.1        RedHat Linux Server 6.4安装DVD (32), 安装时选择“桌面”。

1.2        Oracle 10g Linux安装文件(10201_database_linux32.zip

2、用root用户操作:

1、加载DVDyum库中

mkdir /mnt/iso

mount /dev/dvd /mnt/iso

 

修改/etc/yum.repos.d/ rhel-source.repo

在最后添加:

[rhel_iso]

name=local iso

baseurl=file:///mnt/iso/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

 

2、拷贝zysong.ttf fonts

 

mount -t cifs -o username=administrator,password=admin //200.120.75.24/share/ /windows/

mkdir -p /usr/share/fonts/zh_CN/TrueType

cp zysong.ttf /usr/share/fonts/zh_CN/TrueType/

 

3、连接/usr/lib下的stdC++文件

 

ln -s libstdc++.so.6.0.13 libstdc++.so.5

 

 

 

4、修改Linux的发行标记

1)、如在redhat5上安装oracle,需要将文件 '/etc/redhat-release'的内容由:

 

     vi /etc/redhat-release

 

Red Hat Enterprise Linux Server release 5 (Tikanga)

 

修改为:

 

Red Hat Enterprise Linux Server release 4 (Tikanga)

 

2)、修改增强的Linux安全设置:vi /etc/selinux/config

 

SELINUX=disabled

5、安装libXpgcc

yum install libXp

yum install gcc

 

6、配置内核参数

1.1        编辑/etc/sysctl.conf文件,添加或修改如下的行:

本人实际配置环境中,红色部分是需要修改行,蓝色部分为添加行。
# Controls the maximum shared segment size, in bytes

kernel.shmmax = 2147483648

 

# Controls the maximum number of shared memory segments, in pages

kernel.shmall = 2097152

 

kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144

1.2        查看当前内核参数的值

/sbin/sysctl –p

     注:(一般为内存的0.7倍)OLTP系统SGA+PGA<(Total Memory)*0.8

         SAG<(Total Memory)*0.8*0.8

7、修改/etc/hosts

增加下面内容,如果没有oracle 的监听器无法启动

127.0.0.1               localhost

10.130.166.202         henry

8、提高在linux系统上运行软件的性能,

    必须对oracle用户设置下列shell 限定。

1.3       打开文件数和进程数的限制

加入下面的行到文件/etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

1.4        加入下面的行到文件/etc/pam.d/login
session required     /lib/security/pam_limits.so

session required     pam_limits.so

4、创建oracle用户

以下操作需要使用root账户创建。

1.5        创建oinstall用户组

groupadd–g 701oinstall

1.6        创建dba用户组

groupadd–g 702 dba

1.7        创建oracle用户

useradd –g oinstall –G dba oracle

1.8        初始化oracle用户密码

passwd oracle

 

5、创建Oracle安装目录

本示例中,Oracle安装路径为:/opt/oracle/product/10.2.0/db_1

1.9        创建oracle安装目录

mkdir –p /opt/oracle/product/10.2.0

1.10    修改目录所属用户为oracle用户

chown –R oracle:oinstall /oracle

1.11    修改目录权限

chmod –R 775 /oracle或者

chmod -R ug=rwx,o=rx /oracle

 

echo 504> /proc/sys/vm/hugetlb_shm_group

 

 

9oracle 中文乱码的解决

root用户下修改:

vi etc/sysconfig/i18n

LANG=”en_US.UTF-8”

3、使用oracle用户设置

1、设置oracle用户环境变量

注意以下命令为,必需以oracle用户身分登录:

su – oracle

1.12    修改/home/oracle/.bash_profile文件,添加以下行

export ORACLE_BASE=/opt/oracle

export ORACLE_HOME=$ORACLE_BASE/product/10.2/db_1

export ORACLE_SID=hydb

export PATH=$ORACLE_HOME/bin:$PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH

export JAVA_FONTS=/usr/share/fonts/zh_CN/TrueType

 

umask 022

unset USERNAME

#alias sqlplus='rlwrapsqlplus'

#alias rman='rlwraprman'

#alias ggsci='rlwrapggsci'

 

   

 

注:在export PATH=$ORACLE_HOME/bin:$PATH中,由于分隔时使用了‘;’而不是‘:’,引起了‘-bash: vim: command not found’,错误,所有的命令都无法使用,经过重启服务器,root账号可以使用这些命令了,但是Oralce用户仍无法使用,经查是由于‘;’引起的

 

1.13    检查设置的环境变量

echo $ORACLE_HOME

echo $ORACLE_BASE

echo $ORACLE_SID

1.14    使环境变量生效

[oracle@~]$ . .bash_profile

4、硬件要求

1.1        物理内存至少2G

查看命令:grepMemTotal /proc/meminfo

1.2        交换分区:至少1G,最好是物理内存的2

查看命令:grepSwapTotal /proc/meminfo

1.3        硬盘空闲区至少4G

查看命令:df –h

 

5、使用oracle用户安装oracle

./runInstaller 

 

安装时,最好选择高级安装模式“Advanced Installation”,这样可以设置数据库字符集。

 

使用Root执行两个脚本:

/opt/oracle/oraInventory/orainstRoot.sh

/opt/oracle/product/10.2.0/db_1/root.sh

 

安装完成后:

1、使用oracle用户,使用dbstart无法启动数据库的问题

Failed to auto-start Oracle Net Listene using /ade/vikrkuma_new/oracle/bin/tnslsnr

1)    检查dbstart文件

vi  $ORACLE_HOME/bin/dbstart

检查ORACLE_HOME_LISTNER项的路径,将其改为$ORACLE_HOME,如下:

2)    进行完上述操作后,重新执行dbstart时,数据库仍不能启动。此时,登陆sqlplus,使用命令startup mount;可以登陆。同时伴有,数据库起来后,重启机器后,执行dbstart又不能启动数据库的情况。

解决方法:检查 /etc/oratab文件,按下面方法操作。

此处还有一种修改方法:

#注释掉上面的行,增加下面行

$ORACLE_SID:$ORACLE_HOME:Y

3)    如果执行dbstart仍不能启动,检查dbstart文件中的oratab项配置是否和下图中的一致,如果不一致修改。

 

2、常用命令:

监听程序:

[oracle@app oracle]$ lsnrctl start  --启动监听程序

lsnrctl stop  --停止监听程序

lsnrctl status  -查看监听状态

netca    监听程序配制(GUIoracle net configuration assistant

dbca     database configuration assistant

emca    创建,修改,重建或者删除dbcontrol的配置

trcasst   Trace Assistant

数据库启动:

[oracle@app oracle]$ sqlplus /nolog 

SQL> connect / as sysdba 

Connected.  

SQL> shutdown immediate (关闭数据库)

 Database closed. 

Database dismounted. 

ORACLE instance shut down. 

SQL> startup; (启动数据库

ORACLE instance started.  

Total System Global Area 236000356 bytes

Fixed Size 451684 bytes 

Variable Size 201326592 bytes 

Database Buffers 33554432 bytes 

Redo Buffers 667648 bytes 

Database mounted. 

Database opened.  

如果执行startup启动数据库失败,报告Cant find init file initoradb.ora的错误,需要复制一个初始化文件,执行如下命令

$cd /opt/oracle/admin/hydb/pfile/ 

$cp  init.ora.*  /opt/oracle/product/10.2.0/dbs/initoradb.ora 

重新执行startup,顺利启动。

 

或者:

sqlpl  / as sysdba;

startup

 

启动em

emctl start dbconsole

 

启动isqlplus

isqlplusctl start

 

select status from v$instance;

select open_mode from v$database;

 

http://192.168.1.9:1158/em

http://192.168.1.9:5560/isqlplus

 

防火墙设置

注意,安装完成后必须将防火墙的几个端口打开:1521端口,1158em 5560isqlplus

service iptables status   查看状态

彻底关闭防火墙: service iptables stop  root

开启 service iptables start  root

打开某个端口: ??

/etc/sysconfig/iptables

# Generated by iptables-save v1.4.7 on Mon Oct  7 08:32:32 2013

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [1084:263585]

-A INPUT -p tcp -m tcp --dport 5560 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 1521 -j ACCEPT

-A OUTPUT -p tcp -m tcp --dport 1521 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 1158 -j ACCEPT

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT

 

# Completed on Mon Oct  7 08:32:32 2013

 

一个示例文件(详细说明):

 

IPTables 配置文件

 

RH /etc/sysconfig/iptables 文件,为 iptables-save 生成的格式。

 

*nat 开始处理nat

:PREROUTING ACCEPT [5278:800028] PREROUTING 链的默认策略为ACCEPT(接受/允许),即 -tnat -P PREROUTING ACCEPT。方括号内是本链引用计数,即通过本链的有5278个包,共800028字节。

:POSTROUTING ACCEPT [5278:800028] POSTROUTING 链的默认策略为ACCEPT,即 -t nat -P POSTROUTING ACCEPT

:OUTPUT ACCEPT [5278:800028]  OUTPUT 链的默认策略为接受,即 -t nat -P OUTPUT ACCEPT

 

QUOTE:

-A POSTROUTING -s 192.168.0.0/255.255.255.0 -o eth1 -j SNAT --to-source 61.133.202.70

 

添加一SNAT规则,从eth1 外发的、源地址为192.168.0.0/24网络的数据包将被修改为好像从 61.133.202.70 发出。

COMMIT  nat表处理结束,以下部分不再属于 nat

 

 

*filter  开始处理 filter

:INPUT ACCEPT  [5278:800028]

:FORWARD ACCEPT [5278:800028]

:OUTPUT ACCEPT [5278:800028]

:RH-Firewall-1-INPUT [5278:800028] 定义一个自定义链,名称为RH-Firewall-1-INPUT

-A INPUT -j RH-Firewall-1-INPUT所有输入数据包都转到 RH-Firewall-1-INPUT 链处理

-A FORWARD -j RH-Firewall-1-INPUT所有转发数据包都转到 RH-Firewall-1-INPUT 链处理

-A RH-Firewall-1-INPUT -i lo -j ACCEPT RH-Firewall-1-INPUT 链中添加规则,接受由本地环回接口进入的所有数据包

-A RH-Firewall-1-INPUT -i eth0 -j ACCEPT  接受由网络接口 eth0 进入的所有数据包

-A RH-Firewall-1-INPUT -i eth1 -j ACCEPT  接受由网络接口 eth1 进入的所有数据包

-A RH-Firewall-1-INPUT -p icmp -m icmp any -j ACCEPT  接受所有 ICMP 协议的数据包

-A RH-Firewall-1-INPUT -p esp -j ACCEPT  接受所有 IPSec ESP 协议的数据包

-A RH-Firewall-1-INPUT -p ah -j ACCEPT  接受所有 IPSec AH 协议的数据包

-A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT  接受所有状态标记为 RELATED ESTABLISHED 的数据包

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT  接受所有目标端口为 80 TCP 新连接数据包

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT  接受所有目标端口为 21 TCP 新连接数据包

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT  接受所有目标端口为 22 TCP 新连接数据包

-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited  其余数据包一律拒绝,并以 icmp-host-prohibited 数据包回应

COMMIT  filter表处理完毕

 

-A INPUT -s 219.150.13.170 -j DROP

-A INPUT -s 220.115.251.1 -j DROP

-A INPUT -s 211.115.68.55 -j DROP  还是在 filter 表里处理,丢弃源地址为219.150.13.170220.115.251.1211.115.68.55 的数据包。

这三行是手工加上去的了,不是 iptables-save 生成的。

6、配置oracle为自启动服务

以下操作使用root用户,

1.15    vi /etc/rc.d/init.d/oracle,复制以下内容:

#!/bin/bash

# chkconfig: 2345 66 36

# /etc/rc.d/init.d/oracle

# description: starts the oracle database

#

ORA_HOME=/oracle/product/10.2/db_1

ORA_OWNER=oracle

case "$1" in

start)

echo -n "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."

echo -n "Starting Oracle Listeners: "

su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start" >> /var/log/oracle

echo "Done."

echo ""

echo "---------------------------------------------------------------------------------" >> /var/log/oracle

date +"! %T %a %D : Finished." >> /var/log/oracle

echo "---------------------------------------------------------------------------------" >> /var/log/oracle

touch /var/lock/subsys/oracle

        ;;

stop)

echo -n "Shutting Down Oracle Listeners: "

echo "---------------------------------------------------------------------------------" >> /var/log/oracle

date +"! %T %a %D : Shutting Down Oracle Databases 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

echo -n "Shutting Down Oracle Databases: "

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)

echo -n "Restarting Oracle Databases: "

echo "---------------------------------------------------------------------------------" >> /var/log/oracle

date +"! %T %a %D : Restarting Oracle Databases as part of system up." >> /var/log/oracle

echo "---------------------------------------------------------------------------------" >> /var/log/oracle

su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut" >> /var/log/oracle

su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart" >> /var/log/oracle

echo "Done."

echo -n "Restarting Oracle Listeners: "

su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop" >> /var/log/oracle

su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start" >> /var/log/oracle

echo "Done."

echo ""

echo "---------------------------------------------------------------------------------" >> /var/log/oracle

date +"! %T %a %D : Finished." >> /var/log/oracle

echo "---------------------------------------------------------------------------------" >> /var/log/oracle

touch /var/lock/subsys/oracle

        ;;

  *)

echo "Usage: oracle { start | stop | restart }"

exit 1

esac

exit 0

1.16    修改/etc/rc.d/init.d/oracle执行权限

chmod  755 /etc/rc.d/init.d/oracle

1.17    添加oracle服务

chkconfig  --add oracle

1.18    设置oracle服务自启动

chkconfig oracle on

1.19    启动、关闭、重启oracle命令

启动oracle数据库:

service  oracle  start

关闭oracle数据库:

service  oracle  stop

重启oracle数据库

service  oracle restart


 

附录1:安装过程中遇到的问题及解决方法

1.          xhost:unable to open display

解决方法:

1)查看/etc/inittab文件里,把init3或者其他值改成init5

2reboot system,用root用户通过图形界面进入系统,在终端里执行xhost +,(一般在这里都xhost会执行成功,如果无法执行成功,那你图形肯定有问题!)

2.          执行runInstaller时报错:Exception in thread "main" java.lang.UnsatisfiedLinkError:/tmp/OraInstall2007-12-21_10-40-21PM/jre/lib/i386/libawt.so:libXp.so.6: cannot open shared object file: No such file or directory

解决方法:安装libXp.rpm。这个文件可以在linux安装文件中找到。如果是使用iso文件安装的,可以先挂载光驱:

mount /dev/cdrom  /mnt

 

3.          ORA-01031: insufficient privileges问题

先照着问题3的方法检查一遍。

4.          linux下挂载iso的方法

mount  –o  loop  linux.iso  /mnt/cd1

5.          跟踪命令的执行过程

strace  -v  ps  -ef  2>  ps.txt  写入ps.txt文件

7Host.conf文件配置错误

错误代码如下:/etc/host.conf:line3:bad command '127.0.0.1 localhost'

原因是: /etc/host.conf中多出来一行内容引起的:127.0.0.1 localhost

8startup 开启出错

 

9、执行IMPDP时,停止不动,关闭之后重新启Impdp job时,出现下面的错误

[oraevent@henry ~]$ impdp event ATTACH=event.SYS_IMPORT_SCHEMA_01

 

Import: Release 10.2.0.4.0 - 64bit Production on Sunday, 25 September, 2011 10:07:05

 

Copyright (c) 2003, 2007, Oracle.  All rights reserved.

Password:

 

UDI-00008: operation generated ORACLE error 257

ORA-00257: archiver error. Connect internal only, until freed.

 

1)       查看Archive log 所在位置

SQL>Show parameter log_archeive_dest

2)       一般VALUE为空时,可以用archive log list;检查一下归档目录和log sequence

SQL>archive log list;

3)       检查flash recovery area 的使用情况,可以看见archivelog已经很大了,

SQL> select * from v$flash_recovery_area_usage;

4)       计算flash recovery area 已经占用的空间

Select sum(percent_space_used)*3/100 from v$flash_recovery_area_usage;

5)       找到Recovery 目录,show parameter recover

SQL> show parameter recover;

6)       上述结果告诉我们,归档位置默认是在flash_recovery_area

转移或清除对应的归档日志(注意:再删除归档日之后,必须用RMAN维护控制文件,否则空间显示仍然不释放)

7)       检查一些无用的archivelog

RMAN> crosscheck archivelog all;

8)       删除过期的归档

RMAN> delete expired archivelog all;

Delete archivelog until time ‘sysdate-1’; 删除截止前一天的所有archivelog

9)       修改制定的归档文件路径或者修改flash_recovery_area的大小

SQL> alter system set log_archive_dest=’/oracle/oraarch_log’ scope=both;

SQL> alter system set db_recovery_file_dest_size=3G scope=both;

10、启动Data Pump Jobs

---查询正在运行的Data Pump Jobs

         SQL> select * from v$dba_datapump_jobs;

         ---启动Jobs

         $ impdp event ATTACH=event.SYS_IMPORT_SCHEMA_01

         ----查看Job运行状态:

         Impdp> status

         ---停止Job

         Impdp>stop_job

         ---启动jobs

         Impdp>start_job

         ---查看对应的SESSION

         SQL> select sid,serial# from v$session s, dba_datapump_sessions d where s.saddr=d.saddr;

 

 

 

Select * from v$dba_datapump_jobs;  --查询正在运行的Data Pump Jobs

Import>stop_job

Import>start_job

 

 

TMS.INTERFACE_TO_OMS_PG.RE_SENDLOADING_STATUS;

 

 

 

 

 

 

 

 

 

 

 

http://openwares.net/database/debian_amd64_install_10g_r2_database.html

登录到远程系统
$ssh -XY oracle@remotehost

执行oracle安装程序
$/path/to/client/runInstaller -ignoreSysPrereqs

因为oracle 10g认证的linux系统只有redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 asianux-2这几个,所以在其他linux发行版上安装时需要指定命令行参数-ignoreSysPrereqs,否则会提示:
Checking operating system version: must be redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 or asianux-2
Failed <<<<
然后退出安装

之后在本地机器可以看到OUI(Oracle Universal Installer)界面,后面的安装根据提示来就可以了。安装目录修改为/u01/app/oracle/product/10.2.0/db_1

安装进度大约到65%时会有错误提示:
Error in invoking target 'collector' of makefile '/u01/app/oracle/product/10.2.0/db_1/sysman/lib/ins_emdb.mk'.
这是oracle安装程序的一个bug,可以忽略此错误继续安装,对系统没什么影响。同时oraInventory/logs/目录下的安装日志文件里面会有如下类似错误提示:

INFO: /usr/bin/ld: i386 architecture of input file `/u01/app/oracle/product/10.2.0/db_1/sysman/lib/snmccolm.o' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `/u01/app/oracle/product/10.2.0/db_1/sysman/lib/libnmccol.a(nmccole.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `/u01/app/oracle/product/10.2.0/db_1/sysman/lib/libnmcbuf.a(nmcbuft.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `/u01/ap
INFO: p/oracle/product/10.2.0/db_1/sysman/lib/libnmcbuf.a(nmcbufw.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `/u01/app/oracle/product/10.2.0/db_1/sysman/lib/libnmcbuf.a(nmcbufu.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `/u01/app/oracle/product/10.2.0/db_1/sysman/lib/libnmcbuf.a(snmcbufm.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `/u01/app/oracle/product/10.2.0/db_1/sysman/lib/
INFO: libnmcbuf.a(nmcbuff.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `/u01/app/oracle/product/10.2.0/db_1/sysman/lib//libnmadbg.a(nmadbg.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `/u01/app/oracle/product/10.2.0/db_1/sysman/lib//libnmadbg.a(snmadbg.o)' is incompatible with i386:x86-64 output
collect2: ld returned 1 exit status

INFO: make[1]: Leaving directory `/u01/app/oracle/product/10.2.0/db_1/sysman/lib'

INFO: make[1]: *** [/u01/app/oracle/product/10.2.0/db_1/sysman/lib/nmccollector] Error 1
make: *** [nmccollector] Error 2

这是因为oracle 10.2.0.1安装包为这几个i386目标文件提供了错误版本的x86_64链接库,之后安装patchser 10.2.0.4relink nmccollector会成功。
关于此错误更详细的信息请参考Metalink NOTE 957982.1Bug 8993720

 

 

 

7oracle 创建用户 赋权限

SYSTEM用户下

创建用户:

create user [username] identified by [password]  default tablespace [space_name] temporary tablespace [temp_name];

Create User JFBQ identified by JFBQ default tablespace users;

 

查看用户使用的表空间sql语句如下:

Select username,default_tablespace from dba_users;

 

删除用户:

drop user [username] cascade;

删除用户的同时还会删除该用户下的所有的表、索引等。但不保证释放空间。

 

通过角色授权
grant connect to JFBQ;
grant resource to JFBQ;
grant dba to JFBQ;

 

oracle三种标准的角色:CONNECTRESOURCEDBA

1. CONNECT Role(连接角色)

临时用户,特别是那些不需要建表的用户,通常只赋予他们CONNECTroleCONNECT是使用Oracle的简单权限,这种权限只有在对其他用户的表有访问权时,包括selectinsertupdatedelete等,才会变得有意义。拥有 CONNECT role的用户还能够创建表、视图、序列(sequence)、簇(cluster)、同义词(synonym )、会话(session)和与其他数据库的链(link)

2. RESOURCE Role(资源角色)

RESOURCE提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)和簇(cluster)

3. DBA Role(数据库管理员角色)

DBA role拥有所有的系统权限----包括无限制的空间限额和给其他用户授予各种权限的能力。SYSTEMDBA用户拥有。下面介绍一些DBA经常使用的典型权限。

(1)grant(授权)命令

下面对刚才创建的用户user01授权,命令如下:

grant connect, resource to user01;

(2)revoke(撤消)权限

已授予的权限可以撤消。例如撤消(1)中的授权,命令如下:

revoke connect, resource from user01;

一个具有DBA角色的用户可以撤消任何别的用户甚至别的DBACONNECTRESOURCE DBA的其他权限。当然,这样是很危险的,因此,除非真正需要,DBA权限不应随便授予那些不是很重要的一般用户。

撤消一个用户的所有权限,并不意味着从Oracle中删除了这个用户, 也不会破坏用户创建的任何表;只是简单禁止其对这些表的访问。其他要访问这些表的用户可以象以前那样地访问这些表。

 

在一些情况下即使给新建的用户DBA的权限,但是它还是不能跨用户进行创建表和视图,这个时候需要直接授权。

直接授权

grant Create any View to JFBQ;
grant Create any table to JFBQ;

 

 

 2:启动数据实例 oradim -startup -sid dataname(实例名)

2.使用sys最高用户登录

sqlplus sys as sysdba (sqlplus username/password@connection_String)

create user lisi identified by lisi;//创建一个用户lisi密码为李四

grant session to lisi;//创建李四访问数据库权限

grant unlimited tablespace to lisi;//让李四能无限使用表空间,这时候李四就能创建表了(使用的是默认sys的表空间)

撤销lisi权限

revoke session from lisi;

revoke unlimited tablespace from lisi;

3.对象权限 王五能访问李四表

创建用户王五后,王五新建表tab

grant select on tab to lisi;

grant all on tab to lisi;

5.撤销权限

revoke select on tab from lisi;

revoke all on tab from lisi;

6.把权限授予全部用户

grant create session to public;

7.查询自己权限

select * from user_sys_privs;

 


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理