一:Linux操作安装注意事项及基本操作手册
1:linux安装手册
1.1 :安装需求
-
硬盘需求
基本的定制安装需要475MB,全部安装需要5G。
1.2:安装模式
- 图形方式:
linux
或直接回车 - 字符方式安装:
linux text
- 检测媒介:
linux mediacheck
- 援救模式:
linux rescue
- 跳过硬件检测:
linux noprobe
1.3:安装步骤
1.3.1:图形方式安装为默认方式
安装配置步骤
-
语言、键盘与鼠标(系统一般会默认)
-
选择安装类型与种类
可选择最小化安装(组间比较少,无图形化界面);
要求较高,需要选择一些兼容性的组件,包括:开发组件、安全组件、系统管理组件。可根据自己需求进行选择。
-
硬盘分区
boot分区(引导分区),一般500M;
swap分区(交换分区),一般为内存的2倍(内存64G以上,可以和内存相等);系统压力大的时候使用swap分区。
其他的放到根目录分区。
假设服务器物理内存为32G,硬盘1T。
boot分区:500M;swap分区:64G;根目录:大约剩余960G(剩余空间给根目录分区)
-
网络与防火墙配置(可按默认项,跳过网络与防火墙,也可根据自己意愿配置)
-
认证设置(设置密码)
-
RPM包选择(组件,例如管理工具、兼容性、)
-
X服务器配置(组件,图形化界面)
1.4: 安装类型与种类
1.4.1: 安装类型
- 安装 :安装一个新的linux系统
- 升级:升级原有linux系统
1.4.2:安装种类
- 个人桌面/Personal Dessktop Installations
- 工作站/Workstation Installations
- 服务器/Server Innstallations**(一般安装服务器版)**
- 定制/Customer Installations
1.5:逻辑卷管理器(LVM)设置
-
从硬盘驱动器中创建物理卷(physical volumes)。一个物理卷相当于一个硬盘。
-
从物理卷中创建卷组(volume groups)。把多个硬盘创建为一个vg(卷组)。
-
从卷组中创建逻辑卷(logical volumes),并分派逻辑卷挂载点(把物理的加载到逻辑卷)。
1.6:防火墙设定
- 安装工具可以为系统设置一个简单的防火墙。
- 用户可以选择三种等级:高,中,无防火墙。
- 用户可以在设置防火墙的时候定义‘受信任设备’、‘允许端口’。
- 安装时可以选择关掉,或者放开需要用到的端口。
1.7:开机流程
- BIOS引导
- MBR中的Boot Loader启动
- 载入KERNEL(linux内核)
- INIT初始化并决定系统的运行级别
1.8:BIOS初始化
- 检测外围设备(键盘,鼠标,显示器,摄像头等等)
- 检测启动设备
- 读取与执行启动设备的第一个扇区
1.9:启动引导工具
- 启动引导工具引导并运行核心,分为两个独立的阶段
- 存放在启动扇区
- /boot目录下的文件
- 在linux中常用的启动引导工具
- grub(图形界面)
- lilo(字符界面)
1.10:LILO
- LILO:Linux Loader
- 是旧版本linux的标准启动引导工具
- 其配置文件为/etc/lilo.conf
- 每当lilo.conf被更改,必须执行/sbin/lilo以使更改生效
/sbin/lilo -t
:在更改mbr前进行测试/sbin/lilo -v
:使更改生效且更新配置/sbin/lilo -u
:恢复mbr备份
1.11:GRUB
-
GRUB:Grand Unified Bootloader
-
被广泛的用于替代lilo
- 支持在启动时使用命令模式
- 支持md5加密保护
- 可以从 ext2/ext3/ext4、ReiseFS、JFS、FAT、minix及FFS文件系统上启动
-
其配置文件为**/boot/grub/grub.conf**
-
更改grub.conf即立即生效
如果硬盘上的MBR被更改过,可以用
/sbin/grub-install /dev/hdX
来重新安装grub
1.12: 核心初始化
核心启动流程
- 检测硬件设备
- 设备驱动初始化
- 将根分区以只读方式挂载
- 载入初始进程(一般是init)
1.13:init初始化
init从/etc/inittab中读取数据并初始化
- init运行级别
- 系统启动脚本
- 执行运行级别对应目录下的脚本
- 设置热键
- 定义UPS设备脚本
- 在虚拟控制台上循环开启getty进程
- 定义runlevel 5时的X显示管理器
1.14: 运行级别
- init定义了0~6这7个运行级别,运行级别可以被指定于:
- 系统启动时作为核心加载参数被指定
- 未被指定的情况下,系统启动时从/etc/inittab中读取
- 在系统运行中,root用户键入init[0-6]来指定
- 用户可以用
/sbin/runlevel
来查看当前的运行级别
1.15:/etc/rc.d/rc.local
在运行级别目录下被最后一个调用
一般系统用户将针对此台计算机的开机定制设置写入其中,而非/etc/rc.d/rc.sysinit
2: 常用的基本命令
-
查看文件 【ls】
-
指令名 [选项] [参数]
-
例:
ls /etc/abc
(可不写选项,直接查看) -
例:
ls -l /etc/abc
(以列表方式显示文件的详细信息) -
例:
ls -a /etc/abc
(显示指定目录下所有目录与文件,包括隐藏文件)
-
-
-
帮助命令(查看命令的帮助信息)【help/man】
- 指令 --help
- 例:
mknod --help
- 例:
- man 指令
- 例:
man ls
- 例:
- info 指令
info mknod
- 指令 --help
-
拷贝文件【cp】
- 指令名 [选项] [原文件] [复制后文件]
cp /etc/abc /home/abc
(不带选项复制文件)cp -f /etc/abc /home/abc
(已经存在的文件直接覆盖)cp -i /etc/abc /home/abc
(覆盖前提示)cp -r /etc/abc /home/abc
(递归复制)
- 指令名 [选项] [原文件] [复制后文件]
-
移动或重命名文件【mv】
- 指令名 [选项] [原文件] [复制后文件]
mv /etc/abc /home/abc
(不带选项移动文件)mv /etc/abc /etc/ab
(不带选项重命名文件)mv -i /etc/abc /home/abc
(覆盖文件前提示)
- 指令名 [选项] [原文件] [复制后文件]
-
删除文件【rm】
- 指令名 [选项] [参数]
rm /etc/xy
(不带参数删除文件)rm -f /etc/xy
(强制删除,忽略不存在的文件,无需提示)rm -r /etc/xy
(递归的删除目录下的内容,删除文件夹时需要此参数)rm -rf /etc/xy
(递归并且强制删除目录下的内容)
- 指令名 [选项] [参数]
-
创建空文件或更新文件时间【touch】
- 指令名 [选项] [参数]
touch /etc/xy/1.txt
(创建空文件)touch -a /etc/xy/1.txt
(只更改存取时间)touch -m /etc/xy/1.txt
(只更改变动时间)
- 指令名 [选项] [参数]
-
改变当前路径 【cd】
- 指令名 [参数]
- 例:
cd ..
(返回当前目录的上一层目录) - 例:
cd /etc/abc
(切换到/etc/abc目录) - 例:
cd /
(回到根目录) - 例:
cd
或者cd ~
(回到家目录,/home/用户目录) - 例:
cd -
(可以在最近两次目录间切换目录)
- 例:
- 指令名 [参数]
-
查看当前完整路径 【pwd】
- 指令名
- 例:
pwd
(查看当前完整路径)
- 例:
- 指令名
-
创立新目录 【mkdir】
- 指令名 [选项] [参数]
- 例:
mkdir abc
(不带选项创建abc新目录) - 例:
mkdir -p ab/test
(选项p:若路径中某些目录不存在,自动进行创建)
- 例:
- 指令名 [选项] [参数]
-
删除空目录 【rmdir】
- 指令名 [选项] [参数]
- 例:
rmdir abc
(不带选项,删除空目录abc,abc为空目录的情况下才可以删除) - 例:
rmdir -p test/abc
(递归删除空目录test/abc,当子目录删除后父目录为空目录,则一同删除)
- 例:
- 指令名 [选项] [参数]
-
查看文件内容 【cat】
- 指令名 [选项] [参数]
- 例:
cat hello.txt
(显示hello.txt文本文件的内容) - 例:
cat -n hello.txt
(显示hello.txt文本文件的内容和行号) - 例:
cat
(只接受标准输入的内容并在标准输出中显示) - 例:
cat >hello.txt abc
(ctrl+D组合键退出,输入的abc会写入hello.txt文件中)
- 例:
- 指令名 [选项] [参数]
-
逐屏查看文件内容 【more】
- 指令名 [选项] [参数]
- 例:
more xy.txt
(逐页显示文本内容) - 例:
more +5 xy.txt
(从第n(5)行开始显示) - 例:
more -5 xy.txt
(定义屏幕大小为5行) - 例:
more +/lbs xy.txt
(在每个档案显示前搜寻该字符串(lbs),然后从该字符串前两行开始显示)
- 例:
- 指令名 [选项] [参数]
-
逐行查看文件内容 【less】
- 指令名 [选项] [参数]
- 例:
less lbs.log
(显示文本内容,less可回滚浏览已经看过的部分,可来回翻看文件也可向上向下搜索。) - 例:
less -b lbs.log
(设置缓冲区的大小) - 例:
less -e lbs.log
(当文件显示结束后,自动离开) - 例:
less -s lbs.log
(显示连续空行为一行)
- 例:
- 指令名 [选项] [参数]
-
显示当前时间 【date】
- 指令名 [选项] [参数]
- 例:
date
(查看系统当前时间) - 例:
date -s "8:30"
(改变系统时间) - 例:
date "+%F"
(按年月日格式化输出当前时间) - 例:
date "+%m"
(只输出月份) - 例:
date "+%y-%m-%d %H:%M:%S"
(按定义格式输出时间) - 例:
date "+%u"
(查看今天是周几)
- 例:
- 指令名 [选项] [参数]
-
显示月历 【cal】
- 指令名 [选项] [月份] [年份](如果只有一个参数,则表示年份)
cal
(显示当前月份日历)cal 3 2020
(显示指定月份日历)cal -y 2020
(显示指定年份日历)cal -3 2020
(显示系统前一个月,当前,下一个月的月份日历)cal -s 2020
(显示星期天为一个星期的第一天,默认)cal -m 2020
(显示星期一为一个星期的第一天)cal -j 2020
(显示在当年中的第几天)
- 指令名 [选项] [月份] [年份](如果只有一个参数,则表示年份)
-
显示磁盘用量 【df】
- 指令名 [选项] [文件名]
df -a
(查看所有文件系统,包括虚拟文件系统)df -B 1k
(指定单位大小)df -h
(以人们易读的方式显示)df -H
(以人们易读的方式显示,但是不是1024,而是1k=1000)
- 指令名 [选项] [文件名]
-
计算目录文件占用磁盘的大小 【du】
- 指令名 [选项] [参数]
du -a
(为每个指定文件显示磁盘使用情况)du -b
(显示目录或文件大小时,以byte为单位)du -h
(以K,M,G为单位,提高信息可读性)du -H
(以K,M,G为单位,但是换算单位是1000)du -S
(显示每个目录的大小时,不包含子目录的大小)du -s
(显示总计,当前目录的大小)
- 指令名 [选项] [参数]
-
显示文件开头部分内容 【head】
- 指令名 [选项] [文件名]
head acd.log
(用来显示档案的开头至标准输出中,默认打印前10行)head -n 12 acd.log
(打印前12行)head -c 24 acd.log
(打印的字节数)head -q acd.log
(隐藏文件名)head -v acd.log
(显示文件名)
- 指令名 [选项] [文件名]
-
显示文件结尾部分内容 【tail】
- 指令名 [选项] [文件名]
tail -n +10 linuxdaxue.com-access_log
(从第10行开始显示文件)tail -f linuxdaxue.com-access_log
(循环监视日志文件)tail -q linuxdaxue.com-access_log
(不显示处理信息)tail -v linuxdaxue.com-access_log
(显示详细的处理信息)
- 指令名 [选项] [文件名]
-
系统监视器 【top】
- 指令名 [选项] [参数]
top -d 5
(修改刷新频率,默认为1s,可改为5s)top -p 1,2
(通过参数指定所需监控的进程)top -n 10
(设置在进程列表所显示的进程的数量)top -N
(以PID的大小的顺序排列表示进程列表)top -P
(以CPU占用率的大小的顺序排列表示进程列表)
- 指令名 [选项] [参数]
-
显示内存使用状况 【free】
- 指令名 [选项] [参数]
free
(显示系统内存的使用情况,包括物理内存,交换内存(swap)和内核缓冲区内存)free -h
(输出结果比较友好)free -h -s 3
(持续观察内存状况,指定间隔的秒数)
- 指令名 [选项] [参数]
-
查询进程的指令 【ps】 进程状态码-【D:不可中断;R:运行;S:中断;T:停止;Z:僵死】
- 指令名 [参数]
ps -A
(显示所有进程信息)ps -u root
(显示指定用户信息)ps -ef
(显示所有进程信息,连同命令行)ps -l
(将目前属于您这次登陆的PID与相关信息列示出来)
- 指令名 [参数]
3:新增加一块500G硬盘
3.1 挂载硬盘分区
新增加一块500G硬盘,需要挂载硬盘分区才可以使用
创建挂载点目录(挂载点目录通常创建在/media或/mnt目录,挂载点目录必须是空目录)
示例:将/dev/sdb1分区挂载到/media/myvod目录:
mkdir /media/myvod
mount /dev/sdb1 /media/myvod
mount# (查看当前已挂载设备)
3.2 卸载已挂载的分区
umount 分区设备
示例:umount /dev/sdb1
3.3 设置文件系统的自动挂载
通过/etc/fstab配置文件来实现,使用gedit编辑器,在/etc/fstab配置文件最后增加以下内容用于自动挂载改硬盘分区
/dev/sdb1 /usr/myvod ext3 defaults 0 0
4: vi编辑中常用命令描述
-
使用 vi [文件名]进入:
-
vi分为三种状态
-
命令行模式(command mode)
控制光标移动,字符,字或行的删除,移动复制某区段及进入insert mode下,或者到last line mode;
输入a或i可进入插入模式;命令行输入:,可进入底行模式。
-
插入模式(insert mode)
在此模式下才可以做文字输入;按Esc可进入命令行模式
-
底行模式(last line mode)
可以将文件保存或者退出,也可以寻找字符串,列出行号。
-
-
常用命令
命令模式
- l:光标右移
- nl:光标右移n个字符
- h:光标左移
- nh:光标左移n个字符
- j:光标下移
- nj:光标下移n个字符
- k:光标上移
- nk:光标上移n个字符
- 0:移动光标到行首
- $:移动光标到行末
- G:移动光标到文件末尾
- gg:移动光标到文件开头
- n+:光标下移n行
- n-:光标上移n行
- ~:改变光标所在字母的大小写
- dw:删除当前字符到单词尾所有字符
- yy:复制当前光标所在行
- nyy:复制当前光标以下n行
- x:删除光标所在的字符
- dd:删除光标所在行
- ndd:删除n行
末行模式
- w:保存文件
- q:退出文件
- wq:保存文件并退出
- w file:将当前文件保存到file文件
- q!:强制退出编辑器
二:Oracle在Linux上安装指南
1:Oracle安装前需求和配置
1.1:检查基本需求
-
内存大小:
grep MemTotal /proc/meminfo top free
-
交换分区大小
grep SwapTotal /proc/meminfo
交换分区一般是物理内存的1.5-2倍;如果交换分区大小不符合需求,后续安装过程会报错。
-
Oracle 11g R2数据库安装硬件配置要求:最小内存1GB of RAM
Available RAM Swap Space Required 1GB-2GB 1.5倍 2GB-16GB 和物理内存相等 大于16GB 16GB 如果物理内存32G,则交换分区分配16G。
-
硬盘空间需求
-
数据库软件硬盘空间需求:
Installation Type Requirement for Software Files(GB) Enterprise Edition(企业版) 3.95 Standard Edition(标准版) 3.88 -
数据文件硬盘空间需求:
Installation Type Requirement for Data Files(GB) Enterprise Edition(企业版) 1.7 Standard Edition(标准版) 1.5
-
-
若交换分区太小,需要增加交换分区
-
创建/home/swap这么一个分区文件。文件的大小为5120000个block,一般情况下1block=1k,即文件大小为5G。
-
dd if=/dev/zero of=/home/swap bs=1024 count=5120000
(格式化交换分区) -
将此分区变为swap分区
mkswap /home/swap
-
加入fstab文件
echo "/home/swap swap swap defaults 0 0" >> /etc/fstab
-
1.2:验证linux软件安装包
-
Linux上需要具备Oracle 11g所需的软件包和更新。下面是64位Linux系统所需要的安装包,rpm包版本高于此版本也可以。
-
rpm -qa binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-devel gcc- gcc-c++ libaio-devel libaio libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel pdksh
-
安装方法:
yum -y install 包名称
rpm -ivh 包名称
1.3:配置内核参数(Centos)
编辑/etc/sysctl.conf,将以下内容添加至文件:
fs.file-max=6815744
fs.aio-max-nr=1048576
kernel.shmall=2097152
kernel.shmmax=2147483648
kernel.shmmni=4096
kernel.sem=250 32000 100 128
net.ipv4.ip_local_port_range=9000 65500
net.core.rmem_default=4194304
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048576
完成后输入 /sbin/sysctl -p 命令激活更改。
1.4:linux系统配置
-
设置使用文件数权限;编辑 /etc/security/limits.conf ;添加以下行:
oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536
-
配置pam,修改安全限制添加以下行:
session required /lib/security/pam_limits.so session required pam_limits.so
如果是x64的系统,这里需要用/lib64/security/pam_limits.so
-
系统启动参数修改
编辑 /etc/profile ,添加以下行:
if [ $USER ="oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi
1.5:创建Oracle组合用户
添加组:
groupadd oinstall#安装时使用
groupadd dba#作为管理使用
添加用户:
useradd -g oinstall -G dba oracle
修改密码:
passwd oracle
1.6:创建Oracle的软件安装目录
创建目录:
mkdir -p /u03/app/oracle
分配权限:
chown -R oracle.oinsttall /u03
chmod -R 755 /u03
1.7:配置Oracle的环境变量
编辑 vi /home/oracle/.bash_profile
;添加以下行:
export ORACLE_BASE=/U03/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=DB01
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
umask 022
umask 022:对应权限755.
1.8:配置Hosts文件
编辑 vi /etc/hosts
127.0.0.1 localhost.localdomain localhost
10.18.100.126 gsdb
::1 localhost6.localdomain6 localhost6
2:Oracle在linux上的安装
2.1:安装前准备工作
-
将安装包拷贝到一个文件目录下;
-
解压(如果是两个包解压到同一个目录下即可):
unzip linux.x64_11gR2_database_1of2.zip unzip linux.x64_11gR2_database_2of2.zip
-
设置权限:
chown -R oracle:oinstall database/
-
设置图形界面
xhost +#设置图形界面访问权限,xhost +是不限制 xhost + localhost#只限制本地
2.2:开始安装
-
进入 database/目录
su - oracle cd database/#安装包解压的目录
-
运行安装程序
./runInstaller
系统启动Oracle安装程序。
2.3 :图形化界面安装
- 普通安装时选择第一个,带创建数据库的过程;专业安装时一般建议选择第二个:“只安装软件:(如果出现乱码,退出修改系统的字符集:
export Lang=en-US
)
- 第一个选项为单机安装数据库时选择;第二个为安装超过2个节点RAC时的选择;第三个为安装单节点RAC时的选择。
- 安装软件前系统执行的检查。
- 系统执行的检查结果,需要根据结果修改,不可忽略。
- 安装软件的过程,会根据服务器性能持续一段时间,耐心等待。
- 以root登录执行脚本,脚本执行成功后,点击ok按钮;直接拷贝脚本所在目录,在#提示符下执行,按默认要求执行即可。
- Oracle软件安装完成。出现此窗口,点击右下角close即可;此时,Oracle软件安装成功,可用sqlplus/as/ sysdba登录,但不可以启动数据库。
- 选择创建数据库,DBCA还可以配置数据库。
- 选择一般事务处理。
- 输入数据库名称。字母开头,不超过8位。全局数据库名称可以和SID不同。(此处可设置全局数据库名称:DB01.ORACLE.COM,实例名:DB01)
- 选择“EM”,Oracle10g的一个新的管理工具,通过浏览器方式进行,替代传统的GUI;EM会有Bug,尽量使用高版本。
- 需要执行netca配置监听;选择第一项进行监听配置。
- 选择Add进行添加;可在数据库监听故障时,利用工具重新配置。
- 使用默认的监听配置。
- 使用默认的监听端口号;可以修改,但是修改后需要告诉连接用户。
- 数据库用户密码。(注意:DBSNMP(用于监控),SYSMAN(用于EM),这两个密码以后不能修改。建议SYS超级管理员不要和其他用户密码相同。
- 更具情况选择存储类型,文件系统或ASM。ASM为自动存储管理,是Oracle自己的存储系统。默认选择File System。
- 闪回区:需要手动开启,否则无法使用此功能,一般是数据的2倍。 是否开启归档模式,默认不打开。
- 内存配置:分配给Oracle数据库的内存大小,一般在物理内存的50-75%。在运行过程中可以调整。(memory——target设置为65%)
- 连接数配置:数据库块大小,一般采用默认值;根据用户数及并发量估算数据库连接数。(设置连接数Processes为1800)
- 字符集配置:数据库字符集选择ZHS16GBK;国际字符集不要修改。
- 点击finish开始创建数据库,需要等待一段时间去创建,不可退出!
- 创建数据库,需要等待。
- 创建数据库完成,点击Exit退出;注意EM的访问地址和端口号1158;注意数据库的名称和使用的参数。
2.4:安装后验证
-
Oracle用户登录:
su - oracle
-
登录数据库:
sqlplus /as sysdba
-
启动数据库:
startup
-
查看数据库当前运行模式:
select open_mode,log_mode from v$database;
-
关闭数据库:
shutdown normal#等待用户完成工作然后关闭 shutdown transactional#等待用户完成工作但是强制关闭连接 shutdown abort#直接关闭数据库,正在访问的数据库会被终止
2.5:常用参数
-
根据业务需要调整最大连接数
alter system set processes=1800 scope=spfile;
-
调整数据库内存(假设物理内存32G)
-
物理内存的50-70%
alter system set memory_max_target=22G scope=spfile;
-
小于等于memory_max_target大小
alter system set memory_target=20G scope=spfile;
-
三:创建表空间的语句
-
创建3个数据文件的永久表空间,表空间名称规范:TS_XXX,数据文件名称规范:TS_XXX0X.DBF,数据文件大小200M,位置:/U03/APP/ORACLE/ORADATA/DB01/;
CREATE TABLESPACE ts_lbs1 LOGGING DATAFILE '/U03/APP/ORACLE/ORADATA/DB01/test01.dbf' SIZE 200M, '/U03/APP/ORACLE/ORADATA/DB01/test02.dbf' SIZE 200M, '/U03/APP/ORACLE/ORADATA/DB01/test03.dbf' SIZE 200M;
-
创建临时表空间,表空间名称规范:TS_TEMP_XXX,数据文件名称规范:TS_TEMP_XXX01.DBF,数据文件大小100M,位置:/U03/APP/ORACLE/ORADATA/DB01/;
CREATE TEMPORARY TABLESPACE ts_temp_lbs1 tempfile '/U03/APP/ORACLE/ORADATA/DB01/test04.dbf' SIZE 100M;
-
修改已存在的数据文件为自动增长模式;文件为:/U03/APP/ORACLE/ORADATA/DB01/TEST01.DBF;
ALTER DATABASE DATAFILE '/U03/APP/ORACLE/ORADATA/DB01/test01.dbf' AUTOEXTEND ON NEXT 5M MAXSIZE 300M;
-
创建一个用户名为USER3的用户,缺省表空间为:TS_USERS,配额限制为30M;
create user user3 indentified by x0908y default tablespace ts_users quota 30M on ts_users;
-
分配USER3用户角色:connect,resource,并且分配系统权限创建视图,导出数据库权限;
grant connect,resource to user3; grant create view to user3; grant EXP_FULL_DATABASE to user3;