Contents
1.环境准备
1.1.安装oracle linux7.7
oracle11g下载网址:
https://www.cnblogs.com/zhangzhixi/p/15242962.html
oracle11g下载地址:
http://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_database_1of2.zip
http://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_database_2of2.zip
1.2.修改hosts
echo "192.168.0.51 fgedu51" >> /etc/hosts
cat /etc/hosts
1.3.关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
1.4.关闭selinux
setenforce 0
vim /etc/selinux/config
6 # disabled - No SELinux policy is loaded.
7 SELINUX=disabled
8 # SELINUXTYPE= can take one of three values:
init 6
1.5.创建所需用户和组
groupadd dba
useradd oracle
passwd oracle
#密码:oracle P@ssword
#安装源
mkdir /mnt/linux
mount /dev/cdrom /mnt/linux
cd /etc/yum.repos.d
mkdir bk
mv *.repo bk/
vim itpux.repo
[EL]
name =Linux 7.x DVD
baseurl=file:///mnt/linux
gpgcheck=0
enable=1
yum clean all
yum makecache
1.6.安装依赖
yum -y install autoconf automake binutils binutils-devel bison cpp dos2unix ftp gcc gcc-c++ lrzsz python-devel compat-db* compat-gcc-34 compat-gcc-34-c++ compat-libcap1 compat-libstdc++-33 compat-libstdc++-33.i686 glibc-* glibc-*.i686 libXpm-*.i686 libXp.so.6 libXt.so.6 libXtst.so.6 libXext libXest.i686 libXtst libXtst.i686 libX11 libX11.i686 libXau libXau.i686 libxcb libxcb.i686 libXi libXi.i686 libXtst libstdc++-docs libgcc_s.so.1 libstdc++.i686 libstdc++-devel libstdc++-devel.i686 libaio libaio-devel libaio-devel.i686 ksh libXp libaio-devel numactl numactl-devel make sysstat unixODBC unixODBC-devel elfutils-libelf-devel redhat-lsb-core
下载地址
http://www.rpmfind.net/linux/centos/7.9.2009/os/x86_64/Packages/compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
rpm -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
1.7.配置环境变量
su - oracle
echo "export LANG=en_US" >> ~/.bash_profile
echo "export ORACLE_BASE=/oracle/app/oracle">> ~/.bash_profile
echo "export ORACLE_HOME=/oracle/app/oracle/product/11.2.0/db_1">> ~/.bash_profile
echo "export ORACLE_UNQNAME=itpuxdb" >> ~/.bash_profile
echo "export ORACLE_SID=itpuxdb" >> ~/.bash_profile
echo "NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;export NLS_LANG" >> ~/.bash_profile
echo "export PATH=$PATH:/oracle/app/oracle/product/11.2.0/db_1/bin" >> ~/.bash_profile
source ~/.bash_profile
env |grep ORACLE
1.8.建立oracle专用盘
su - root
fdisk -l
fdisk /dev/sdb
n->p-w #按情况来选择
fdisk -l
mkfs.xfs -f /dev/sdb
parted -l /dev/sdx #查看分区文件类型
lsblk 或者 fdisk -l #查看新的硬盘的情况
mkdir -p /oracle/app/oracle #创建挂载的目录
mount /dev/sdb /oracle #挂载磁盘
vim /etc/fstab #修改启动文件,添加挂载信息
/dev/sdb /oracle xfs defaults 0 2
init 6 #重启
mount | grep /oracle #验证挂载信息
df -h #验证挂载信息
chown -R oracle:dba /oracle
chmod -R 775 /oracle
2.安装
2.1.解压
su - oracle
cd /oracle
unzip /mnt/hgfs/oracle\ soft/linux.x64_11gR2_database_1of2.zip
unzip /mnt/hgfs/oracle\ soft/linux.x64_11gR2_database_2of2.zip
#登录oracle用户,进入桌面,打开终端
cd /oracle/database
./runInstaller -jreLoc /etc/alternatives/jre_1.8.0
2.2.安装
弹出截面






















#打开终端,切换到root
su - root
/tmp/CVU_11.2.0.1.0_oracle/runfixup.sh
#点击OK,会再次检测

#切换到root用户,看看安装的包的情况
#如果没有找到类似,则需要安装,如此类推
rpm -qa | grep libio
libaio-devel-0.3.109-13.el7.x86_64
libaio-devel-0.3.109-13.el7.i686
libaio-0.3.109-13.el7.i686
libaio-0.3.109-13.el7.x86_64
#解决 包:pdksh-5.2.14 警告
这个警告,我猜测直接忽略就行了。因为本机已经安装了ksh-20120801-142.el7.x86_64。yum search pdksh 中搜索没的搜索到它。只能手动安装了
#查看是否有类似的安装包
rpm -qa | grep pdksh
#下载安装包
wget http://vault.centos.org/5.11/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm
#安装
rpm -ivh /mnt/hgfs/iso/pdksh-5.2.14-37.el5.x86_64.rpm
警告:/mnt/hgfs/iso/pdksh-5.2.14-37.el5.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID e8562897: NOKEY
错误:依赖检测失败:
pdksh 与 (已安裝) ksh-20120801-139.0.1.el7.x86_64 冲突
#卸载冲突
rpm -e ksh-20120801-139.0.1.el7.x86_64
#重新安装
rpm -ivh /mnt/hgfs/iso/pdksh-5.2.14-37.el5.x86_64.rpm
#再检测,显示消失
#接着安装




#上面这个点继续

cd $ORACLE_HOME/sysman
cd lib
cp ins_emagent.mk ins_emagent.mk.bak
vim ins_emagent.mk
改:
187 #===========================
188
189 $(SYSMANBIN)emdctl:
190 $(MK_EMAGENT_NMECTL)
191
192 #===========================
为:
187 #===========================
188
189 $(SYSMANBIN)emdctl:
190 $(MK_EMAGENT_NMECTL) -lnnz11
191
192 #===========================
#然后回到安装界面点击继续或者重新尝试


#启动路径
/oraclef/app/oracle/product/11.2.0/db_1/dbs/spfileitpuxdb.ora

#切换root用户运行以上两个脚本,运行正常后,启动oracle测试

3.首次启动的步骤
#切换到oracle用户
su - oracle
#连接数据库-linux
sqlplus "/as sysdba"
#查看数据库状态-ORACLE
select status from v$instance;
select instance_name,status from v$instance;
#显示如下状态才是正常
INSTANCE_NAME STATUS
---------------- ------------
itpuxdb OPEN
4.关闭数据的步骤
关闭数据库的步骤
#查看数据库状态-ORACLE
select status from v$instance;
select instance_name,status from v$instance;
#关闭数据库-ORACLE
shutdown immediate;
#关闭监听-LINUX
lsnrctl stop
5.启动数据库的步骤
#启动数据库-ORACLE
startup
#查看数据库状态-ORACLE
select status from v$instance;
select instance_name,status from v$instance;
#退出-ORACLE
exit
#启动监听
lsnrctl start
切记,关闭系统前,先关闭数据库,再关闭监听,最好再关闭系统,不然系统很容易出错
6.相关日志须知
日志路径
select * from v$diag_info;
#找到下面信息
INST_ID NAME
---------- ----------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
1 Diag Trace
/oracle/app/oracle/diag/rdbms/itpuxdb/itpuxdb/trace
1 Diag Alert
/oracle/app/oracle/diag/rdbms/itpuxdb/itpuxdb/alert
1 Diag Incident
/oracle/app/oracle/diag/rdbms/itpuxdb/itpuxdb/incident
警告日志路径
cd /oracle/app/oracle/diag/rdbms/itpuxdb/itpuxdb/trace
ls -lsa al*
36 -rw-r----- 1 oracle oracle 33204 Mar 25 00:18 alert_itpuxdb.log
tail -200f alert_itpuxdb.log
#报错可以从这个文件看到,一般以“ora”开头
7.卸载oracle
#进入桌面命令行
dbca




#切换到root用户
rm -rf /
ls /etc/o*
rm -rf /etc/oraInst.loc
rm -rf /etc/oratab
userdel oracle
ps -ef | grep 端口号
kill -9
#如果关不了端口,就直接重启
8.数据表的基本操作
1.查看实例itpuxdb的
#用于查询Oracle数据库中所有数据文件的名称。
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/oracle/app/oracle/oradata/itpuxdb/system01.dbf
/oracle/app/oracle/oradata/itpuxdb/sysaux01.dbf
/oracle/app/oracle/oradata/itpuxdb/undotbs01.dbf
/oracle/app/oracle/oradata/itpuxdb/users01.dbf
--------------------------------------------------------------------------------
在Oracle数据库中,v$datafile是一个动态性能视图,包含了数据库中所有数据文件的详细信息。通过执行select name from v$datafile命令,可以获取到数据库中所有数据文件的名称。这对于数据库管理员来说是非常有用的信息,可以帮助他们了解数据库的物理存储结构,进行故障排查或优化数据库性能。
具体来说,v$datafile视图包含了以下信息:
NAME:数据文件的名称。
TABLESPACE_NAME:数据文件所属的表空间名称。
BYTES:数据文件的大小(以字节为单位)。
STATUS:数据文件的状态(如ONLINE、OFFLINE等)。
RELATIVE_FNAME:相对于表空间的文件名。
通过查询这个视图,数据库管理员可以获取到每个数据文件的详细信息,从而更好地管理和维护数据库。
#创建表空间
SQL> create tablespace fgedu datafile '/oracle/app/oracle/oradata/itpuxdb/fgedu01.dbf' size 10m;
#或者
CREATE TABLESPACE fgedu
DATAFILE '/oracle/app/oracle/oradata/itpuxdb/fgedu01.dbf' -- 实例下的存放路径
SIZE 50M -- 初始大小为50MB,可以根据需要调整大小
AUTOEXTEND ON -- 允许文件自动扩展
NEXT 50M -- 每次自动扩展增加50MB
MAXSIZE UNLIMITED; -- 文件最大无限制
#确认是否创建
SQL> select * from dba_tablespaces; #查看所有表空间的基本信息
SELECT * FROM dba_tablespaces WHERE tablespace_name = 'FGEDU'; #查看表空间是否有被创建
#增加新的表空间
ALTER TABLESPACE fgedu ADD DATAFILE '/oracle/app/oracle/oradata/itpuxdb/fgedu02.dbf' SIZE 50M AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED;
#创建用户
SQL> create user fgedu identified by fgedu default tablespace fgedu;
#解释
CREATE USER fgedu: 这部分命令用于创建一个名为fgedu的新用户。
IDENTIFIED BY fgedu: 这部分指定了用户fgedu的密码。在这个例子中,用户的密码也被设置为fgedu。在实际使用中,出于安全考虑,建议使用更复杂的密码。
DEFAULT TABLESPACE fgedu: 这部分指定了新用户fgedu的默认表空间。在Oracle数据库中,表空间是存储数据库对象(如表、索引等)的逻辑单元。这里,用户的所有对象(如表、索引等)在没有明确指定表空间时,将默认存储在名为fgedu的表空间中
#授权
SQL> grant dba to fgedu;
#在Oracle数据库中,DBA(Database Administrator)权限是最高级别的权限,拥有这些权限的账户可以对数据库进行全面的管理和维护。
#登录到用户
SQL> conn fgedu/fgedu;
#创建表
SQL> create table itpuxt1(id number(12) primary key,name varchar(20));
#插入数据
SQL> insert into itpuxt1 values(2,'fgedu2');
SQL> insert into itpuxt1 values(1,'fgedu1');
SQL> commit;
#查看已经创建好的数据表
SQL> select * from itpuxt1;
ID NAME
---------- --------------------
2 fgedu2
1 fgedu1