oracle11G在linux环境下的卸载操作

news2025/1/16 13:55:37

1.使用SQL*PLUS停止数据库

[oracle@OracleTest oracle]$ sqlplus / as sysdba
SQL> shutdown [immediate]
SQL> exit

2.停止Listener

[oracle@OracleTest oracle]$ lsnrctl stop

3.停止HTTP服务

[root@OracleTest /root]# service httpd stop

4.用su或者重新登录到root(如想重新安装可以保留oracle用户,省得输入环境变量了)

5.将安装目录删除

[root@OracleTest /root]# rm -rf /u01/oracle/
[root@OracleTest /root]# rm -rf /u01/oraInventory/

6.将/usr/bin下的文件删除

[root@OracleTest /root]# rm /usr/local/bin/dbhome
[root@OracleTest /root]# rm /usr/local/bin/oraenv
[root@OracleTest /root]# rm /usr/local/bin/coraenv

7.将/etc/oratab删除

[root@OracleTest /root]# rm /etc/oratab

8.将/etc/oraInst.loc删除

[root@OracleTest /root]# rm /etc/oraInst.loc

9.将oracle用户删除(若要重新安装,可以不删除)

[root@OracleTest /root]# userdel –r oracle

10.将用户组删除(若要重新安装,可以不删除)

[root@OracleTest /root]# groupdel oinstall
[root@OracleTest /root]# groupdel dba

11.将启动服务删除

[root@OracleTest /root]# chkconfig --del dbora

到此为止重启后,你的Linux系统下的Oracle数据库已完全删除了!!!

以上是CentOS5.4+Oracle 11g的环境。

如果要再次安装, 最好先做一些备份工作。
包括用户的登录脚本,数据库自动启动关闭的脚本,和Listener自动启动的脚本。
要是有可能连创建数据库的脚本也保存下来

CentOS7安装Oracle 11gR2 图文详解
一、环境准备
安装包:
1.VMware-workstation-full-11.1.0-2496824.exe2.CentOS-7-x86_64-DVD-1511.iso3.linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip
以上不是重点,不给下载地址,不描述安装过程,安装完CentOS 7,截图如下:
在这里插入图片描述

二、安装Oracle前准备
1.创建运行oracle数据库的系统用户和用户组

[sonny@localhost ~]$ su root  #切换到root
Password: 
[root@localhost sonny]# groupadd oinstall  #创建用户组oinstall
[root@localhost sonny]# groupadd dba  #创建用户组dba
[root@localhost sonny]# useradd -g oinstall -g dba -m oracle  #创建oracle用户,并加入到oinstall和dba用户组
[root@localhost sonny]# passwd oracle  #设置用户oracle的登陆密码,不设置密码,在CentOS的图形登陆界面没法登陆
Changing password for user oracle.
New password:   # 密码
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:   # 确认密码passwd: all authentication tokens updated successfully.
[root@localhost sonny]# id oracle # 查看新建的oracle用户
uid=1001(oracle) gid=1002(dba) groups=1002(dba)
[root@localhost sonny]# 

为啥要创建oinstall用户组及dba组? 参考:http://www.oracle.com/technetwork/cn/articles/hunter-rac11gr2-iscsi-2-092412-zhs.html#13
理论上单例按照需要3种用户组,实际只建两个oinstall和dba,后面再安装oracle数据库的时候把OSOPER组也设置是dba组。
a.oracle 清单组(一般为oinstall):
OINSTALL 组的成员被视为 Oracle 软件的“所有者”,拥有对 Oracle 中央清单 (oraInventory) 的写入权限。在一个 Linux 系统上首次安装 Oracle 软件时,
OUI 会创建 /etc/oraInst.loc 文件。该文件指定 Oracle 清单组的名称(默认为 oinstall)以及 Oracle 中央清单目录的路径。
b.数据库管理员(OSDBA,一般为 dba):
OSDBA 组的成员可通过操作系统身份验证使用 SQL 以 SYSDBA 身份连接到一个 Oracle 实例。该组的成员可执行关键的数据库管理任务,如创建数据库、启动和关
闭实例。该组的默认名称为dba。SYSDBA 系统权限甚至在数据库未打开时也允许访问数据库实例。对此权限的控制完全超出了数据库本身的范围。不要混淆 SYSDBA
系统权限与数据库角色 DBA。DBA 角色不包括 SYSDBA 或 SYSOPER 系统权限。
c.数据库操作员组(OSOPER,一般为 oper):
OSOPER 组的成员可通过操作系统身份验证使用 SQL 以 SYSOPER 身份连接到一个 Oracle 实例。这个可选组的成员拥有一组有限的数据库管理权限,如管理和运行备份。
该组的默认名称为oper。SYSOPER 系统权限甚至在数据库未打开时也允许访问数据库实例。对此权限的控制完全超出了数据库本身的范围。要使用该组,选择 Advanced 安装类型来安装 Oracle 数据库软件。
2.创建oracle数据库安装目录

[sonny@localhost ~]$ su root
Password: 
[root@localhost sonny]# mkdir -p /data/oracle  #oracle数据库安装目录
[root@localhost sonny]# mkdir -p /data/oraInventory  #oracle数据库配置

文件目录

`[root@localhost sonny]# mkdir -p /data/database  #oracle数据库软件包解`压目录
[root@localhost sonny]# cd /data
[root@localhost data]# ls  #创建完毕检查一下(强迫症)
database  oracle  oraInventory
[root@localhost data]# chown -R oracle:oinstall /data/oracle 

#设置目录所有者为oinstall用户组的oracle用户

[root@localhost data]# chown -R oracle:oinstall /data/oraInventory
[root@localhost data]# chown -R oracle:oinstall /data/database
[root@localhost data]#  

3.修改OS系统标识
oracle默认不支持CentOS系统安装,Oracle Database 11g Release 2 的 OS要求参考: https://docs.oracle.com/cd/E11882_01/install.112/e47689/pre_install.htm#LADBI1106
我安装是64位数据库,On Linux x86-64:Red Hat Enterprise Linux 7 (RHEL 7)
另外,CentOS7.0.1511 基于 RHEL7.2 参考:http://www.linuxidc.com/Linux/2015-12/126283.htm
修改文件 /etc/RedHat-release

[sonny@localhost data]$ su root
Password: 
[root@localhost data]# cat /proc/version 
Linux version 3.10.0-327.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) ) #1 SMP Thu Nov 19 22:10:57 UTC 2015
[root@localhost data]# cat /etc/redhat-release  
CentOS Linux release 7.2.1511 (Core) 
[root@localhost data]# vi /etc/redhat-release
[root@localhost data]# cat /etc/redhat-release 
redhat-7 
[root@localhost data]#  

4.安装oracle数据库所需要的软件包
重复一遍,我安装时Oracle Database 11g Release 2 64位数据库。
Oracle Database Package Requirements for Linux x86-64 如下:(参考:https://docs.oracle.com/cd/E11882_01/install.112/e47689/pre_install.htm#BABCFJFG)
操作系统:Oracle Linux 7 and Red Hat Enterprise Linux 7
The following packages (or later versions) must be installed:
binutils-2.23.52.0.1-12.el7.x86_64
compat-libcap1-1.10-3.el7.x86_64 gcc-4.8.2-3.el7.x86_64 gcc-c+±4.8.2-3.el7.x86_64
glibc-2.17-36.el7.i686
glibc-2.17-36.el7.x86_64
glibc-devel-2.17-36.el7.i686
glibc-devel-2.17-36.el7.x86_64
ksh
libaio-0.3.109-9.el7.i686
libaio-0.3.109-9.el7.x86_64
libaio-devel-0.3.109-9.el7.i686
libaio-devel-0.3.109-9.el7.x86_64
libgcc-4.8.2-3.el7.i686
libgcc-4.8.2-3.el7.x86_64
libstdc+±4.8.2-3.el7.i686
libstdc+±4.8.2-3.el7.x86_64
libstdc+±devel-4.8.2-3.el7.i686
libstdc+±devel-4.8.2-3.el7.x86_64
libXi-1.7.2-1.el7.i686
libXi-1.7.2-1.el7.x86_64
libXtst-1.2.2-1.el7.i686
libXtst-1.2.2-1.el7.x86_64 make-3.82-19.el7.x86_64
sysstat-10.1.5-1.el7.x86_64
一个一个的安装,命令也很简单,反正文档要求高版本也可以:

[sonny@localhost data]$ su root
Password: 
[root@localhost data]# yum install binutils

省略…
5.关闭防火墙 CentOS 7.2默认使用的是firewall作为防火墙

[sonny@localhost /]$ su root
Password: 
[root@localhost /]# systemctl status firewalld.service

#查看防火墙状态,运行中

 firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2016-04-07 18:54:29 PDT; 2h 20min ago
 Main PID: 802 (firewalld)
   CGroup: /system.slice/firewalld.service
           └─802 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

Apr 07 18:54:25 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
Apr 07 18:54:29 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
[root@localhost /]# systemctl stop firewalld.service  #关闭防火墙
[root@localhost /]# systemctl status firewalld.service  #再次查看防火墙状态,发现已关闭
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Thu 2016-04-07 21:15:34 PDT; 9s ago
 Main PID: 802 (code=exited, status=0/SUCCESS)

Apr 07 18:54:25 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
Apr 07 18:54:29 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
Apr 07 21:15:33 localhost systemd[1]: Stopping firewalld - dynamic firewall daemon...
Apr 07 21:15:34 localhost systemd[1]: Stopped firewalld - dynamic firewall daemon.
[root@localhost /]# systemctl disable firewalld.service  #禁止使用防火墙(重启也是禁止的)
Removed symlink /etc/systemd/system/dbus-org.Fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
[root@localhost /]# 
 防火墙先禁用,搞好之后再配置,个人虚拟机,要毛线防火墙~~
6.关闭selinux(需重启生效)
[root@localhost /]# vi /etc/selinux/config
[root@localhost /]# cat /etc/selinux/config

This file controls the state of SELinux on the system.

SELINUX= can take one of these three values:

enforcing - SELinux security policy is enforced.

permissive - SELinux prints warnings instead of enforcing.

disabled - No SELinux policy is loaded.

SELINUX=disabled #此处修改为disabled

SELINUXTYPE= can take one of three two values:

targeted - Targeted processes are protected,

minimum - Modification of targeted policy. Only selected processes are protected.

mls - Multi Level Security protection.

SELINUXTYPE=targeted

[root@localhost /]#
为啥要关闭selinux?因为selinux太高深,非专业人士搞不懂~~
7.修改内核参数
红色部分为添加代码
[sonny@localhost /]$ su root
Password:
[root@localhost /]# vi /etc/sysctl.conf
[root@localhost /]# cat /etc/sysct.confcat: /etc/sysct.conf: No such file or directory
[root@localhost /]# cat /etc/sysctl.conf

System default settings live in /usr/lib/sysctl.d/00-system.conf.

To override those settings, enter new settings here, or in an /etc/sysctl.d/.conf file

For more information, see sysctl.conf(5) and sysctl.d(5).net.ipv4.icmp_echo_ignore_broadcasts = 1

net.ipv4.conf.all.rp_filter = 1
fs.file-max = 6815744 #设置最大打开文件数
fs.aio-max-nr = 1048576
kernel.shmall = 2097152 #共享内存的总量,8G内存设置:20971524k/1024/1024
kernel.shmmax = 2147483648 #最大共享内存的段大小
kernel.shmmni = 4096 #整个系统共享内存端的最大数
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500 #可使用的IPv4端口范围
net.core.rmem_default = 262144
net.core.rmem_max= 4194304
net.core.wmem_default= 262144
net.core.wmem_max= 1048576
[root@localhost /]#
使配置参数生效
[root@localhost /]# sysctl -p
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
sysctl: setting key “fs.file-max”: Invalid argument
fs.file-max = 6815744 #设置最大打开文件数
fs.aio-max-nr = 1048576
sysctl: setting key “kernel.shmall”: Invalid argument
kernel.shmall = 2097152 #共享内存的总量,8G内存设置:2097152
4k/1024/1024
sysctl: setting key “kernel.shmmax”: Invalid argument
kernel.shmmax = 2147483648 #最大共享内存的段大小
sysctl: setting key “kernel.shmmni”: Invalid argument
kernel.shmmni = 4096 #整个系统共享内存端的最大数
kernel.sem = 250 32000 100 128
sysctl: setting key “net.ipv4.ip_local_port_range”: Invalid argument
net.ipv4.ip_local_port_range = 9000 65500 #可使用的IPv4端口范围
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
[root@localhost /]#
8.对oracle用户设置限制,提高软件运行性能(红色为添加部分)
[sonny@localhost /]$ su root
Password:
[root@localhost /]# vi /etc/security/limits.conf
[root@localhost /]# cat /etc/security/limits.conf

/etc/security/limits.conf

#This file sets the resource limits for the users logged in via PAM.
#It does not affect resource limits of the system services.

#Also note that configuration files in /etc/security/limits.d directory,
#which are read in alphabetical order, override the settings in this
#file in case the domain is the same or more specific.
#That means for example that setting a limit for wildcard domain here
#can be overriden with a wildcard setting in a config file in the
#subdirectory, but a user specific setting here can be overriden only
#with a user specific setting in the subdirectory.

#Each line describes a limit for a user in the form:

#

#Where:
# can be:

- a user name

- a group name, with @group syntax

- the wildcard *, for default entry

- the wildcard %, can be also used with %group syntax,

for maxlogin limit

# can have the two values:

- “soft” for enforcing the soft limits

- “hard” for enforcing hard limits

# can be one of the following:

- core - limits the core file size (KB)

- data - max data size (KB)

- fsize - maximum filesize (KB)

- memlock - max locked-in-memory address space (KB)

- nofile - max number of open file descriptors

- rss - max resident set size (KB)

- stack - max stack size (KB)

- cpu - max CPU time (MIN)

- nproc - max number of processes

- as - address space limit (KB)

- maxlogins - max number of logins for this user

- maxsyslogins - max number of logins on the system

- priority - the priority to run user process with

- locks - max number of file locks the user can hold

- sigpending - max number of pending signals

- msgqueue - max memory used by POSIX message queues (bytes)

- nice - max nice priority allowed to raise to values: [-20, 19]

- rtprio - max realtime priority

#

#* soft core 0
#* hard rss 10000
#@student hard nproc 20
#@faculty soft nproc 20
#@faculty hard nproc 50
#ftp hard nproc 0
#@student - maxlogins 4
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

End of file

[root@localhost /]#
9.配置用户的环境变量(红色部分为添加代码)
[root@localhost /]# vi /home/oracle/.bash_profile
[root@localhost /]# cat /home/oracle/.bash_profile

.bash_profile

Get the aliases and functionsif [ -f ~/.bashrc ]; then

. ~/.bashrcfi

User specific environment and startup programs

PATH= P A T H : PATH: PATH:HOME/.local/bin:$HOME/bin

export PATH
export ORACLE_BASE=/data/oracle #oracle数据库安装目录
export ORACLE_HOME=KaTeX parse error: Expected 'EOF', got '#' at position 33: …ct/11.2.0/db_1 #̲oracle数据库路径 exp…ORACLE_HOME/bin:/usr/sbin:KaTeX parse error: Expected 'EOF', got '#' at position 6: PATH #̲添加系统环境变量 export…ORACLE_HOME/lib:/lib:/usr/lib #添加系统环境变量
export LANG=C #防止安装过程出现乱码
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK #设置Oracle客户端字符集,必须与Oracle安装时设置的字符集保持一致,如:ZHS16GBK,否则出现数据导入导出中文乱码问题
[root@localhost /]#
使上述配置立即生效:
[oracle@localhost /]$ su root
Password:
[root@localhost /]# source /home/oracle/.bash_profile
[root@localhost /]#
10.上述都搞定了,上传安装包我喜欢xftp,将oracle安装包上传到/usr/local/src

11.解压安装包
[oracle@localhost /]$ cd /usr/local/src  #进入/usr/local/src目录
[oracle@localhost src]$ ls
linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip
[oracle@localhost src]$ unzip linux.x64_11gR2_database_1of2.zip -d /data/database/  #解压
(省略…)
[oracle@localhost src]$ unzip linux.x64_11gR2_database_2of2.zip -d /data/database/  #解压
(省略…)
[oracle@localhost src]$ su root
Password:
[root@localhost src]# chown -R oracle:oinstall /data/database/database/
[root@localhost src]#
三、oracle安装
1.图形界面登陆oracle用户:
在这里插入图片描述

2.启动oralce安装,到/data/database/database/目录下,执行runInstaller

在这里插入图片描述

3.去掉勾,懒得填,个人使用环境不需要自动接收Oracle的安全更新。
在这里插入图片描述

4.下一步,只安装数据库软件,个人用不要那些玩意~~
在这里插入图片描述

5.选择单例安装,前面的所有配置均为单例安装。
在这里插入图片描述

6.添加语言
在这里插入图片描述

7.默认安装版本企业版-Enterprise Edition --图没了。
8.确定数据软件的安装路径,自动读取前面Oracle环境变量中配置的值。
在这里插入图片描述

9.理论上要创建Database Operation(OSOPER)Group:oper ,个人用,懒得建,就使用dba用户组
在这里插入图片描述

10.安装检查,按照提示信息一个一个解决。
在这里插入图片描述

swap空间不足解决 :(要求2.67G 实际2G)
[root@localhost oracle]# free -m  #查看当前虚拟内存
total used free shared buff/cache available
Mem: 1824 1369 93 10 361 250
Swap: 2048 20 2028
[root@localhost oracle]# dd if=/dev/zero of=/home/swap bs=1024 count=1024000  #将当前swap空间由2048M 增加到 3048M 新增一个2014的swap文件1024000+0 records in1024000+0 records out1048576000 bytes (1.0 GB) copied, 29.4051 s, 35.7 MB/s
[root@localhost oracle]# mkswap /home/swap
Setting up swapspace version 1, size = 1023996 KiB
no label, UUID=5e3d39d7-285e-4c74-b321-1e2b3ffabf83
[root@localhost oracle]# free -m
total used free shared buff/cache available
Mem: 1824 1275 95 10 454 342
Swap: 2048 141 1907
[root@localhost oracle]# swapon /home/swap  #增加并启用虚拟内容
swapon: /home/swap: insecure permissions 0644, 0600 suggested.
[root@localhost oracle]# free -m  #再次查看
total used free shared buff/cache available
Mem: 1824 1275 94 10 454 342
Swap: 3048 141 2907
11.一个一个检查package,在准备阶段中漏掉的,此处再安装,有些系统报错是因为现有的包的版本比检测要高,最后忽略即可。(点击Check_Again 多检查几次)
在这里插入图片描述

12.准备完毕,fuck “Finish”开始安装。
在这里插入图片描述

安装过程中的问题:
在这里插入图片描述
在这里插入图片描述

解决办法:
主要因为C库的问题,解决办法就是手动指定C库位置出现agent nmhs问题后,找到$ORACLE_HOME/sysman/lib/ins_emagent.mk文件,在文件里找字符串

$(MK_EMAGENT_NMECTL)
替换为
( M K E M A G E N T N M E C T L ) − l n n z 11 注意: l n n z 和 (MK_EMAGENT_NMECTL) -lnnz11 注意:lnnz和 (MKEMAGENTNMECTL)lnnz11注意:lnnz(MK_EMAGENT_NMECTL)之间有空格
然后点“重试“按钮就可以了

手动创建数据库
环境:OEL+Oracle 11.2.0.1
由于当前环境已有一个数据库实例,但这并不影响我们创建一个新的实例sun
当前系统实例
[oracle@DBA2 dbs]$ env |grep ORACLE
ORACLE_SID=orcl1
ORACLE_BASE=/u/oracle
ORACLE_HOME=/u/oracle/product/11.2
[oracle@DBA2 dbs]$

1、首先设置我们要创建的数据库ORACLE_SID
export $ORACLE_SID=sun

2、为新实例创建密码文件
orapwd file=$ORACLE_HOME/dbs/orapwsun password=oracle entries=10

3、创建初始化参数文件(pfile)
[oracle@DBA2 dbs]$ vi initsun.ora
db_name=sun
control_files=‘/oradata/sun/control01.ctl’
sga_target=250M
undo_management=auto
undo_tablespace=undotbs
其中最主要的参数是db_name、control_files和sga_target

4、创建实例相关的目录(数据文件,日志文件,控制文件等)
我将数据文件和日志文件和控制文件放在了一个目录下,我这里只用了一个控制文件。当然,最好使用两个或三个控制文件并存放在不同路径下,以保证数据文件的冗余。
[oracle@DBA2 ~]$ mkdir /oradata/sun
[oracle@DBA2 admin]$ mkdir /u/oracle/admin/adump
[oracle@DBA2 admin]$ mkdir /u/oracle/admin/bdump
[oracle@DBA2 admin]$ mkdir /u/oracle/admin/pfile

5、创建spfile文件并将数据库启动到nomount 状态
SQL> create spfile from pfile;

File created.
SQL> startup nomount
ORACLE instance started.

Total System Global Area 418484224 bytes
Fixed Size 1336932 bytes
Variable Size 281020828 bytes
Database Buffers 130023424 bytes
Redo Buffers 6103040 bytes
SQL>
6、创建数据库(附脚本)
CREATE DATABASE sun
USER SYS IDENTIFIED BY oracle
USER SYSTEM IDENTIFIED BY oracle
LOGFILE GROUP 1 (‘/oradata/sun/redo01a.log’) SIZE 20M,
GROUP 2 (‘/oradata/sun/redo02a.log’) SIZE 20M,
GROUP 3 (‘/oradata/sun/redo03a.log’) SIZE 20M
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
MAXINSTANCES 2
CHARACTER SET AL32UTF8
DATAFILE ‘/oradata/sun/system01.dbf’ SIZE 400M REUSE
EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE ‘/oradata/sun/sysaux01.dbf’ SIZE 400M REUSE
DEFAULT TABLESPACE users
DATAFILE ‘/oradata/sun/users01.dbf’ SIZE 20M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
DEFAULT TEMPORARY TABLESPACE tempts01
TEMPFILE ‘/oradata/sun/tempts01.dbf’ SIZE 20M REUSE
UNDO TABLESPACE undotbs
DATAFILE ‘/oradata/sun/undotbs01.dbf’ SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
/

7、执行相关数据字典试图
@?/rdbms/admin/catalog.sql
@?/rdbms/admin/catproc.sql
@?/sqlplus/admin/pupbld.sql

OK,至此手动创建Oracle数据库完成,实验证明手动建库比DBCA建库要来的方便和快速,基本流程也就分以上几个步骤

oracle一个创建用户、创建表空间、授权、建表的完整过程 2014-07-01 16:44:09
分类: Oracle
1.首先我们可以用scott用户以sysdba的身份登录oracle.
Sql代码
1.conn scott/tiger as sysdba

2.然后我就可以来创建用户了.
Sql代码
1.create user zzg identified by zzg123;

3.创建好用户我们接着就可以修改用户的密码.
Sql代码
1.alter user zzg identified by unis;

4.默认情况下用户创建好后系统会默认给该用户分配一个表空间(users);
我们可以通过下面的sql语句来查看一下所有用户所在的表空间.
Sql代码
1.select username,default_tablespace from dba_users;

5.一般在开发情况下,我们当然不会使用用户的默认表空间,所以这时我们需要创建一个表空间.
Sql代码
1.create tablespace ts_zzg datafile ‘f:\ts_zzg\zzg_data.dbf’ size 200M;

注:datafile后面是表空间的物理存储路径,文件名的后缀可以随便.

6.创建好表空间,还需要将表空间分配给用户.
Sql代码
1.alter user zzg default tablespace ts_zzg;

7.我们可以通过步骤4来查询用户所在的表空间.

8.给用户分配了表空间,用户还不能登陆(没有登录权限),因此还需要为用户分配权限
Sql代码
1.grant create session,create table,create view,create sequence,unlimited tablespace to zzg;

9.给用户分配了权限之后我们就可以用zzg用户来登录了.
Sql代码
1.conn zzg/unis;

10.登录之后我们也可以来查询用户所具有的权限
Sql代码
1.select *from session_privs;

11.最后我们也可以删除用户及其相关对象
Sql代码
1.drop user zzg cascade;

listener.ora/sqlnet.ora/tnsnames.ora配置文件详解
Oracle网络配置
三个配置文件 listener.ora、sqlnet.ora、tnsnames.ora ,都是放在$ORACLE_HOME/network/admin目录下。
英文说明:
The sqlnet.ora is an optional file expressing more parameters about the connection (eg: the trace level for debugging, the types of authentication you would like to support and so on). It may be found on the client or the server.
The tnsnames.ora is used to find a Net8 listener and connect to it and pass to it the details of the database instance youwould like to connect to. It will be found on the client side. Note that a SERVER can be a client of another database so it is typical to find it on the SERVER as well.
The listener.ora is used to setup the configuration of the net8 listener. to specify the port it will listen on, give it the details of the databases it can connect to and so on. This file is on the SERVER only.

  1. sqlnet.ora-----通过这个文件来决定怎么样找一个连接中出现的连接字符串。
    例如我们客户端输入
    sqlplus sys/oracle@ora
    假如我的sqlnet.ora是下面这个样子
    SQLNET.AUTHENTICATION_SERVICES= (NTS)
    NAMES.DIRECTORY_PATH= (TNSNAMES,HOSTNAME,EZCONNECT)
    那么,客户端就会首先在tnsnames.ora文件中找ora的记录.如果没有相应的记录则尝试把ora当作一个主机名,通过网络的途径去解析它的 ip地址然后去连接这个ip上GLOBAL_DBNAME=ora这个实例,当然我这里ora并不是一个主机名
    EZCONNECT表示:可以使用简单的方式连接Oracle例如:

1 CONNECT username/password@host[:port][/service_name][/instance_name] 2 CONNECT username/password@host[:port][/service_name] 3 sqlplus / as sysdba 4 sqlplus sys as sysdba/sys@127.0.0.1:1521

如果我是这个样子
NAMES.DIRECTORY_PATH= (TNSNAMES)
那么客户端就只会从tnsnames.ora查找ora的记录,括号中还有其他选项,如LDAP等并不常用。
2. tnsnames.ora------这个文件类似于unix 的hosts文件,提供的tnsname到主机名或者ip的对应。
只有当sqlnet.ora中类似NAMES.DIRECTORY_PATH= (TNSNAMES) 这样,也就是客户端解析连接字符串的顺序中有TNSNAMES是,才会尝试使用这个文件。
例子:
ORA_TEST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = LXL)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ora)
)
)
ORA_TEST:客户端连接服务器端使用的服务别名。注意一定要顶行书写,否则会无法识别服务别名。
PROTOCOL:客户端与服务器端通讯的协议,一般为TCP,该内容一般不用改。
HOST:ORACLE服务器端IP地址或者hostname。确保服务器端的监听启动正常。
PORT:数据库侦听正在侦听的端口,可以察看服务器端的listener.ora文件或在数据库侦听所在的机器的命令提示符下通过lnsrctl status [listener name]命令察看。此处Port的值一定要与数据库侦听正在侦听的端口一样。
SERVICE_NAME:在服务器端,用system用户登陆后,sqlplus> show parameter service_name命令查看。
3. listener.ora------listener监听器进程的配置文件
关于listener进程就不多说了,接受远程对数据库的接入申请并转交给oracle的服务器进程。所以如果不是使用的远程的连接,listener进程就不是必需的,同样的如果关闭listener进程并不会影响已经存在的数据库连接。
例子:
#listener.ora Network Configuration File: #E:/oracle/product/10.1.0/Db_2/NETWORK/ADMIN/listener.ora

Generated by Oracle configuration tools.

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ora)
(ORACLE_HOME = E:/oracle/product/10.1.0/Db_2)
(SID_NAME = ora)
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1521))
)
LISTENER :监听名称,可以配置多个监听,多个监听的端口号要区分开来。
GLOBAL_DBNAME :全局数据库名。通过select * from global_name; 查询得出
ORACLE_HOME :oracle软件的跟目录
SID_NAME :服务器端(本机)的SID
PROTOCOL:监听协议,一般都使用TCP
HOST:本机IP地址,双机时候使用浮动IP
PORT:监听的端口号,使用netstat –an 检查该端口不被占用。
当你输入sqlplus sys/oracle@orcl的时候
1. 查询sqlnet.ora看看名称的解析方式,发现是TNSNAME
2. 则查询tnsnames.ora文件,从里边找orcl的记录,并且找到主机名,端口和service_name
3. 如果listener进程没有问题的话,建立与listener进程的连接。
4. 根据不同的服务器模式如专用服务器模式或者共享服务器模式,listener采取接下去的动作。默认是专用服务器模式,没有问题的话客户端就连接上了数据库的server process。
5. 这时候网络连接已经建立,listener进程的历史使命也就完成了。
sql*plus运行基本机理:
在用户输入sqlplus system/manager@test后,sqlplus程序会自动到sqlnet.ora文件中找NAMES.DEFAULT_DOMAIN参数,假如该参数存在,则将该参数中的值取出,加到网络服务名的后面,即此例中你的输入由sqlplus system/manager@test自动变为sqlplus system/manager@test.server.com ,然后再到tnsnames.ora文件中找test.server.com网络服务名,这当然找不到了,因为该文件中只有test网络服务名,所以报错。解决的办法就是将sqlnet.ora文件中的NAMES.DEFAULT_DOMAIN参数注释掉即可,如 #NAMES.DEFAULT_DOMAIN = server.com。假如NAMES.DEFAULT_DOMAIN参数不存在,则sqlplus程序会直接到tnsnames.ora文件中找 test网络服务名,然后取出其中的host ,port,tcp,service_name,利用这些信息将连接请求发送到正确的数据库服务器上。
重点:上面所有的HOST值必须是计算机的主机名,否则只有本机使用127.0.0.1能访问数据库,局域网内的其他主机不能访问【血泪史,不解释】
并使用telnet 192.168.1.51 1521能连接
使用netstat -an可以查看到如下

贴出我的
sqlnet.ora内容

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1192011.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

bootstrap-fileinput拦截文件上传处理失败,根据后台返回数据处理

bootstrap-fileinput如何拦截后台数据,自定义处理业务逻辑 需要后台返回error字段,失败示例,注意:error必须有内容,不然默认也是成功, bootstrap-fileinput失败验证只需要 error 字段,其他附加…

【MySQL习题】各个视频的平均完播率【全网最详细教学】

目录 数据表描述 问题描述 输出示例 解题思路【重点】 正解代码 数据表描述 有以下两张表: 表1:用户-视频互动表tb_user_video_log 数据举例: 说明: uid-用户ID,video_id-视频ID start_time-开始观看时间end_time-结束观…

微信小程序报request:fail url not in domain list的解决方法

情况1:未设置合法域名 解决方法:请在微信公众平台登录小程序后台 > 开发管理 > 开发设置 > 服务器域名 情况2:设置了合法域名,开发工具仍然报错 解决方法: 在右上角点击详情,之后刷新一下项目配置,看看有…

一篇博客读懂单链表——Single-List

目录 一、初识单链表 单链表是如何构造的: 单链表如何解决顺序表中的问题: 二、单链表的初始定义 三、尾插和头插 3.1 新建结点CreateNode 3.2 打印SLTPrint 3.3 尾插SLTPushBack 3.4 头插SLTPushFront 四、尾删和头删 4.1 尾删SLTPopBack…

容器数据卷+MYSQL实战

什么是容器数据卷? 让我们回忆一下docker理念: 就是将应用和环境打包成一个镜像 数据? 如果数据都在容器中,那么我们删除容器,数据就会丢失 !需求:数据持久化就完美了 对于MYSQL&#xff0…

玄子Share-Git 入门手册

玄子Share-Git 入门手册 简单介绍 Git Git 是一个自由和开源的分布式版本控制系统,旨在快速和高效地处理从小型到大型的所有项目 Git 简单易学,占用空间小,性能快如闪电。它比Subversion、CVS、Perforce和ClearCase等SCM工具更有优势&…

python默认的输入类型是字符串,怎样转换为其他的类型

在Python中,默认的输入类型是字符串(str类型)。无论你输入的是数字、字符还是其他类型的内容,input函数都会将其作为字符串处理并返回。 如果需要将字符串转换为其他类型(如整数、浮点数等),可…

kafka和rocketMq的区别

kafka topic 中每一个分区会有 Leader 与 Follow。Kafka 的内部机制可以保证 topic 某一个分区的 Leader 与 Follow 不在同一台机器上 Leader 节点承担一个分区的读写,Follow 节点只负责数据备份 如果 Leader 分区所在的 Broker 节点宕机,会触发主从节…

Linux 的热插拔机制通过 Udev(用户空间设备)实现、守护进程

一、Udev作用概述 udev机制简介udev工作流程图 二、Linux的热拔插UDEV机制 三、守护进程 守护进程概念守护进程在后台运行基本特点 四、守护进程和后台进程的区别 一、Udev作用概述 udev机制简介 Udev(用户空间设备)是一个 Linux 系统中用于动态管…

玄子Share-HTML5知识手册

玄子Share-HTML5知识手册 前言: 这一版 HTML 笔记,算是我写的第四版了,第三版对照课本编写,第四版则是对照 MDN 官方文档编写,不论是术语亦或专业性,都更上一层 文章依托 MDN 文档,拓展了大量课…

【2023-11-09】git使用随记——gitignore文件配置某些文件忽略

git使用随记——gitignore文件配置某些文件忽略 通过git进行版本控制在项目中是非常常见的,一些项目构建上的文件通常是不需要进行版本控制的,也就无需推送到git仓库中,比如前端项目中的node_module目录。提供配置.gitignore文件 但是某些情…

腾讯云88,阿里云99,现在都这么卷了吗?!

你是否曾经想过,云服务器的价格竟然可以如此亲民?现在,腾讯云和阿里云竟然都推出了超低价位的云服务器,只要88元和99元!这让我们这些自媒体人、创业者、开发者等都感到非常惊喜。可以看一下配置和价格: 可…

MATLAB中Line 属性说明

目录 颜色和样式 位置 Line 属性是注释线条的外观和行为。 Line 属性控制 Line 对象的外观和行为。通过更改属性值,可以修改线条的特定方面。使用圆点表示法查询和设置属性。 h annotation("line"); c h.Color; h.Color "red"; 颜色和样…

边缘计算如何改变数据存储?

边缘计算在整个价值链中提供多种优势——从降低成本到提高效率再到安全数据传输。该技术允许在源头收集和分析相关数据,这有助于减少延迟和带宽成本,同时显著提高计算过程的冗余系数和效率。 通过降低数据传输成本和损失,边缘计算帮助企业实现…

docker更改存储目录原因及方案

为什么一定要将docker的存储目录挂载到其他目录 docker在安装时默认存储目录在/var/lib/docker,而该目录是在系统盘下的。docker安装后,会使用各种各样的镜像,动辄几个G,那么如此多的镜像文件,装着装着系统盘就撑爆了…

【AI】自回归 (AR) 模型使预测和深度学习变得简单

自回归 (AR) 模型是统计和时间序列模型,用于根据数据点的先前值进行分析和预测。这些模型广泛应用于各个领域,包括经济、金融、信号处理和自然语言处理。 自回归模型假设给定时间变量的值与其过去的值线性相关,这使得它们可用于建模和预测时…

【Unity细节】Unity中的Transform.SetParent还有你不知道的细节

👨‍💻个人主页:元宇宙-秩沅 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 秩沅 原创 😶‍🌫️收录于专栏:unity细节和bug 😶‍🌫️优质专栏 ⭐【…

除了鲁大师,你还可以装这些。

无论是专业的电脑维护人员,还是只是一个简单的 DIY 兴趣爱好者,有的时候都会或多或少遇到一些电脑硬件的问题。 这种情况下,如果特地去安装一款专门的检测软件,肯定会非常麻烦。 一般来说,检测电脑硬件,使…

【解刊】可投!Elsevier旗下1/2区SCI,4天见刊!

计算机类 • 好刊解读 今天小编带来Elsevier旗下计算机领域好刊的解读,如有相关领域作者有意向投稿,可作为重点关注!后文有同领域快刊发表案例,供您投稿参考~ 01 期刊简介 Sustainable Computing: Informatics and Systems ☑️…

内存卡数据恢复,5 个免费好用的数据恢复方法工具全解

丢失了 SD 卡中的一些重要照片或文档,并且不知道如何恢复?好吧,别担心!!以下是一些适用于 Windows 的最佳 SD 卡恢复工具,可增加您检索意外删除、丢失或丢失数据的机会。 什么是 SD 卡数据恢复软件&#xf…