Linux系统下操作Oracle数据库

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小微机环境。它是一种高效率的、可靠性好的、适应高吞吐量的数据库方案。

一、登录oracle数据库:
//切换至Oracle用户:

[root@localhost ~]# su - oracle

//进入sqlplus环境,nolog参数表示不登录:

[oracle@localhost ~]$ sqlplus /nolog

//注:
su 和 su - 命令的区别:
前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;
而后者连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误。

//以管理员模式登录:

[oracle@localhost ~]$ sqlplus / as sysdba

//注:
sqlplus / as sysdba,是oracle登录三种方式之一
oracle登录身份有三种:
1、normal 普通身份;
2、sysdba 系统管理员身份;
3、sysoper 系统操作员身份;
a.若以 ‘sysdba’ 方式认证,登录用户为 ‘SYS’,为 Oracle ‘最高权限用户’
b.若以 ‘sysoper’ 方式认证,登录用户为 ‘PUBLIC’,仅有 ‘PUBLIC 对象权限’
sysdba可以建数据库,sysoper不能建数据库

//查询sys和system两个管理员的权限个数

SQL> select t.grantee, count(1) from dba_sys_privs t where t.grantee in ('SYS', 'SYSTEM')  group by t.grantee;

注:sys和system都是Oracle ‘内置用户’;sys拥有最高权限,存储 Oracle 的数据字典的基表和视图,这些基表和视图对 Oracle 的运行是至关重要的,由数据库自己维护,任何用户都不能手动更改。sys (‘超级管理员’) 的权限远大于 system (‘一般管理员’)。
//启动数据库

SQL> startup

//停止数据库

SQL> shutdown immediate

//查看数据库所有账号及账号状态

SQL>select username,account_status from dba_users;

//查询SID
在oracle中,sid是“System IDentifier”的缩写,是数据库的唯一标识符,是在建立数据库时系统自动赋予的一个初始ID,是以环境变量的形式出现的,用于将系统上fork的进程与其他实例进行区分。SID是在一些DBA操作以及与操作系统交互,从操作系统的角度访问实例名,必须通过ORACLE_SID(操作系统的环境变量),且它在注册表中也是存在的。而数据库名是在安装数据库、创建新的数据库、创建数据库控制文件、修改数据结构、备份与恢复数据库时都需要使用到的。

env|grep SID (不用进数据库,只需要su到oracle下就可以执行查询)

查看用户:

SQL> select * from v$instance;
SQL> select instance_name,host_name from v$instance;

设置SID:

 export ORACLE_SID=hhh

//查询数据库的DBID

SQL>select dbid,open_mode from v$database;

DBID是DataBase IDentifier的缩写,是数据库的唯一识别码(代号),被记录在控制文件和数据文件中,跟学生表中的学号的功能是类似的,ID是系统自动分配的,如数据库名为testdb,dbid 为7。平时很少需要用这个参数。但在RMAN恢复时,若没有使用恢复目录(catalog),知道被恢复的数据库的DBID可以简化操作。例如要恢复一个已经丢失了控制文件的数据库的控制文件。
//oracle查询数据库密码哪一天过期(其中expiry_date即是过期的时间)

SQL>select username,account_status,expiry_date,profile from dba_users;

//查询数据库密码有效期

SQL>select * from dba_profiles s where s.profile='DEFAULT' and resource_name='PASSWORD_LIFE_TIME';

//配置用户密码过期时间

SQL>alter profile "default" limit password_life_time unlimited;
配置用户密码永不过期
SQL>alter profile "default" limit password_life_time 100;
配置用户密码100天过期

//修改密码

SQL>alter user 用户名  identified by  密码;

//创建、配置新用户及查看用户属性
//解锁新用户:

SQL>alter user scott account unlock;
SQL>alter user scott identified by tiger;

//删除oracle用户:
SQL>drop user username cascade; (删除与用户相关的所有对象)
这样该用户包括该用户下的表,试图,同义词,过程,索引,及相关的一切就删除了。

//创建用户并赋权限以及设置默认表空间。
以sysdba用户登陆进行以下设置:
– 创建用户

SQL>create user VHFSM
identified by vhnj1fsm
default tablespace MGRVHFSTBSDEF 此处是设置默认表空间。
temporary tablespace TEMP
profile DEFAULT
quota unlimited on mgrvhfstbs2010 此处是设置可操作的其他表空间
quota unlimited on mgrvhfstbsdef;

–授权

SQL>grant connect to VHFSM;
SQL>grant dba to VHFSM;

– 授予无限表空间权限

SQL>grant unlimited tablespace to VHFSM;

//查看所有用户:

SQL>select * from dba_users;
SQL>select * from all_users;
SQL>select * from user_users;

//查看用户或角色系统权限(直接赋值给用户或角色的系统权限):

SQL>select * from dba_sys_privs;
SQL>select * from user_sys_privs;

//查看角色(只能查看登陆用户拥有的角色)所包含的权限

SQL>select * from role_sys_privs;

//查看用户对象权限:

SQL>select * from dba_tab_privs;
SQL>select * from all_tab_privs;
SQL>select * from user_tab_privs;

//查看所有角色:

SQL>select * from dba_roles;

//查看用户或角色所拥有的角色:

SQL>select * from dba_role_privs;
SQL>select * from user_role_privs;

//查看哪些用户有sysdba或sysoper系统权限(查询时需要相应权限)

SQL>select * from V$PWFILE_USERS

//注意:
//以下语句可以查看Oracle提供的系统权限

SQL>select name from sys.system_privilege_map

//查看一个用户的所有系统权限(包含角色的系统权限)

SQL>SELECT privilege
FROM dba_sys_privs
WHERE grantee = 'DATAUSER'
UNION
SELECT privilege
FROM dba_sys_privs
WHERE grantee IN (SELECT granted_role FROM dba_role_privs WHERE grantee = 'DATAUSER');

二、数据库监听

  //启动监听服务[root@localhost ~]# su - oracle[oracle@localhost ~]$ lsnrctl start//停止监听服务[oracle@localhost ~]$ lsnrctl stop//查看监听状态[oracle@localhost ~]$ lsnrctl status

Listener主要负责下面方面功能:
1、 监听客户端请求
监听器运行在数据库服务器之上,与Oracle实例(可为多个)相关关联,是一个专门的进程process,在windows的服务项目或者Linux的运行进程列表中,都会看到对应的运行进程。Windows上名为TNSLSNR,Linux/Unix平台上是lsnrctl。
2、 为客户端请求分配Server Process
监听器只负责接听请求,之后将请求转接给Oracle Server Process。在Oracle的服务模式下,客户端进程是不允许直接操作数据库实例和数据,而是通过一个服务进程Server Process(也称为影子进程)作为代理。
3、 注册实例服务。
本质上讲,listener是建立实例和客户端进程之间联系的桥梁。Listener与实例之间的联系,就是通过注册的过程来实现的。注册的过程就是实例告诉监听器,它的数据库数据库实例名称instance_name和服务名service_names。监听器注册上这样的信息,对客户端请求根据监听注册信息,找到正确的服务实例名称。目前Oracle版本中,提供动态注册和静态注册两种方式。
4、错误转移failover。
Failover是RAC容错的一个重要方面功能,其功能是在数据库实例崩溃的时候,可以自动将请求转移到其他可用实例上的一种功能。可以提供很大程度上的可用性(Availability)功能。这个过程中,发现实例已经崩溃,并且将请求转移到其他实例上,就属于是listener的功能。
5、 负载均衡衡量。
在RAC架构中,Oracle实现了负载均衡。当一个客户请求到来时,Oracle会根据当前RAC集群环境中所有实例的负载情况,避开负载较高的实例,将请求转移到负载较低的实例进行处理。在早期RAC版本中,负载轻重的衡量是根据监听器当前维护连接数目来确定的,而不是实时查看多实例的负载。RAC环境中的监听器之间进行沟通通信。
三、用户权限管理
注:以下命令都需要DBA权限。
//查询哪些用户拥有DBA权限:

SQL>select * from dba_role_privs t where t.granted_role = 'DBA';

//创建用户

SQL>create user 用户名 identified by 123456 ;

//赋予用户的表空间权限

SQL>alter user 用户名default tablespace 用户名;

//或者两条命令合并为

SQL>create user 用户名identified by 123456 default tablespace 用户名;

注:新创建的用户是没有任何权限的,登录的权限都没有。因此需要再继续做授权操作,但必须是具有授权能力的用户,例如:sys、system;角色是指由系统权限集合,通常给某个用户授权时,如果没有角色存在的话,则需要一条条的操作。通常一个角色由多个系统权限组成。常用的角色有三个connect(7种权限),dba,resource(在任何表空间建表)。

//授予用户管理权限

SQL>grant connect,resource,dba to 用户名;

//删除用户

SQL>drop user“name”cascade;

注:cascade参数是级联删除该用户所有对象,经常遇到如用户有对象而未加此参数则用户删不了的问题,所以习惯性的加此参数。“name”的引号有无都是一样的。
四、数据表及表空间
=什么是表空间=
表空间是Oracle数据对象和数据存储的容器,它只是一个逻辑概念,若干操作系统文件(文件可以不是很大)可以组成一个表空间。表空间统一管理空间中的数据文件,一个数据文件只能属于一个表空间。一个数据库空间由若干个表空间组成。如图所示:

//创建表空间

create tablespace ittbank datafile '/u01/app/oracle/oradata/ORCL/ittbank.dbf' size 300m autoextend on;

注:末尾带autoextend on参数表示当表空间大小不够用时会自动扩容,of则代表不自动扩容,所以建议加上autoextend on参数。

//查询当前表空间

select * from v$tablespace;

//查询所有表空间
select * from sys.dba_tablespaces; --查询表空间

//查看用户当前连接数

select count(*) from sys.v_$session;

//查询空闲空间

select tablespace_name,file_id,block_id,bytes,blocks from dba_free_space;

//增加Oracle表空间
先查询数据文件名称、大小和路径的信息,语句如下:

select tablespace_name,file_id,bytes,file_name from dba_data_files;

//修改文件大小语句如下

alter database datafile'需要增加的数据文件路径,即上面查询出来的路径'resize 800M;

五、desc常用查询

 desc dba_temp_files; 查询临时表空间desc v$database; 查看数据库desc dba_data_files; 查看数据文件desc user_segments; 查看oracle segment(段)desc dba_segments; 查看ORACLE segmentdesc dba_tables; 查看表desc dba_objects 查看对象desc dba_users; 查看用户desc dba_tablespaces; 查看表空间desc user_segments; 查看数据段desc dba_jobs; 查看jobdesc dba_role_privs; 查看角色权限desc dba_constraints 查看约束desc dba_cons_columns 查看列约束show parameter log_archive_dest; 查看archive log所在位置archive log list; 查看归档目录以及log sequenceselect * from V$FLASH_RECOVERY_AREA_USAGE; 查看flash_recovery_area 使用情况。select sum(percent_space_used)*3/100 from v$flash_recovery_area_usage; 计算flash_recovery_area已经占用的空间。show parameter recover; 查找recovery目录desc v$process 通过v$process视图,我们获的是当前系统中所有进程信息,包括“后台进程”,也包括“服务器进程”。select addr, program from v$process;desc v$bgprocess 通过v$bgprocess视图,我们获得当前系统中启动的Oracle“后台进程”信息。select paddr, name from v$bgprocess where paddr<>'00';通过v$bgprocess.paddr与v$process.addr关联起来的,关联后查询结果显而易见只会有Oracle“后台进程”的信息select a.paddr, a.name, a.description from v$bgprocess a, v$process b where a.paddr=b.addr;

Linux系统下操作Oracle数据库相关推荐

  1. linux系统下的oracle数据库,在Linux系统下安装Oracle数据库

    在Linux系统下安装Oracle数据库:1.约定:linux系统为Linux.5.4-server-x86_64,数据库为linux.x64_11gR1_database_1013 linux 在L ...

  2. 导出Windows服务器下的Oracle数据库并导入到Linux服务器下的Oracle数据库中

    2019独角兽企业重金招聘Python工程师标准>>> 说明: 1.Windows Oracle数据库 操作系统:Windows Server 2008 R2 IP地址:192.16 ...

  3. 【Linux】手把手教你在 Linux 环境下部署 Oracle 数据库!

    来源:公众号[杰哥的IT之旅] 作者:三笠 相信大家第一次接触 Oracle 数据库时,大多数是在 windows 环境下安装,方便快捷,基本上可以说是一直下一步就能顺利安装成功.然而企业级的数据库, ...

  4. 修改linux下全局数据库名,linux/unix下修改oracle数据库实例名的方法

    linux/unix下修改oracle数据库实例名的方法 2018年12月10日 | 萬仟网IT编程 | 我要评论 linux/unix下修改oracle实例名的方法 1.检查原来的数据库实例名 $ ...

  5. UNIX下 oracle expdp,Linux服务器下对Oracle数据库expdp(导出)和impdp(导入)

    Linux服务器下对Oracle数据库expdp(导出)和impdp(导入) 紧接上篇文章,Oracle数据库架构已经创建完成,我的需求是:将老服务器上的数据库迁移到新的数据库上. 这就用到impdp ...

  6. Linux系统下操作的常用快捷键

    Linux系统下操作的常用快捷键     Ubuntu基本快捷键(可能有重复.不全)欢迎指正 * 打开主菜单 = Alt + F1 类似Windows下的Win键,在GNOME中打开"应用程 ...

  7. linux系统下安装pfam数据库中hmmer软件以及python3非root用户的安装

    linux系统下安装pfam数据库中hmmer软件以及python3非root用户的安装 http://hmmer.org/从该链接下载源,其中有Userguide.pdf 下载,解压缩并切换目录 之 ...

  8. Linux系统中安装Oracle 数据库操作

    我的centos7是在virtualbox下安装的,安装Oracle安装了好久好久,现将详细操作步骤写下来. 一.安装的硬件要求 1.内存: 要求:内存最小1G,推荐2G或者更高.呃呃呃 查看命令:# ...

  9. 用linux命令创建表主键,Linux系统下SQL Server数据库操作

    Linux系统SQL Server数据库操作命令 连接数据库 sqlcmd命令 创建数据库: 查看所有数据库: 创建表 添加主键约束 外部关键字 怎么添加唯一约束 怎么添加非空约束 怎么使用默认约束 ...

最新文章

  1. 跳出数据计算拯救人工智能之自然法则
  2. UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0x80 in position 658: illegal multibyte sequence
  3. linux编辑模式复制快捷键,Linux vim删除、复制、粘贴快捷键
  4. 用数学方法分析哪类游戏中的AI难度最大
  5. 如何先执行input (checkbox,radio)再执行函数
  6. php 输出json utf8,php json_encode utf-8中文问题
  7. 汇编语言-016(SCASB 、STOSB 、LODSD 、数组中的取值、二维数组操作、冒泡排序和二分查找、CMPSW )
  8. Ubuntu Server 分区案例
  9. 三星Galaxy Note 20系列将首发Exynos 992:性能超骁龙865
  10. 蓝桥杯 ALGO-43 算法训练 A+B Problem
  11. 如何使用python编程画图_【Python开发】使用python中的matplotlib进行绘图分析数据...
  12. WSS 3.0与MOSS 2007重要更新
  13. 阿里巴巴Java开发文档2020版学习-日期时间
  14. Unity使用Newtonsoft报错的解决方案
  15. geektool 天气_如何使用Geektool自定义Mac桌面
  16. win10记得pin码 重置密码登录
  17. 超强文本编辑器SciTE配置方法详细实例
  18. 面部捕捉技术_新功能要来!苹果收购面部捕捉技术公司Faceshift
  19. C语言——函数定义及用法【内部函数外部函数内联函数】
  20. mysql 1114错误_mysql – ERROR 1114(HY000):表’XXX’已满

热门文章

  1. android指南针卡死,android指南针
  2. h5 加载完成_开业通知朋友圈怎么写?新店开业宣传H5
  3. 滚动轴承损伤、偏翘、电蚀、跑外圈特征分析及信号特征提取
  4. Ubuntu下配置FreeRADIUS + PPTP/L2TP + Mysql + daloRADIUS
  5. 免费的天气查询api接口调用
  6. 创业书籍推荐,这本书最经典!
  7. 高数 下总复习 完结
  8. 字号与磅值的对应关系
  9. 编写一个制造各种车辆的程序。包含三个类,具体要求如下: (1)基类Vehicle,包含轮子数和汽车自身重量两个属性,一个两参数的构造方法,一个显示汽车信息的方法; (2)小轿车类Car,增加载客数属性
  10. jav皮卡_前5名:12个模因,皮卡第,AMP打开还是关闭? 和更多