启动oracle需要同时启动oracle实例以及监听器
1 如何启动oracle实例
切换用户:su - oracle
设置启动实例:export ORACLE_SID=orcl ,orcl为你要启动的实例的名称
连接:sqlplus / as sysdba
启动:startup;,如果要关闭则用 shutdown immediate
退出:exit;
2. 如何启动监听器
启动:lsnrctl start
停止:lsnrctl stop
查看状态:lsnrctl status ,如果查看到的状态为UNKNOWN,那么表明表示实例启动有问题,需要重新启动。状态为READY则表明服务正常。
3 状态为UNKNOWN的问题
说明:lsnrctl status 查看到的Instance “orcl”, status UNKNOWN 情况,表明该orcl实例不是自动注册,而是通过搜索lstener.ora,主动找到匹配的Service后进行注册的,主动监听(listener.ora中添加配置)不管数据库是否启动。
listener.ora 位置:cd $ORACLE_HOME/network/admin
解决方法:通过1中的命令启动相应的实例
4 几个参数
$ORACLE_HOME 文件夹下是ORACLE命令、链接库、安装助手、listener等一些列的文件
$ORACLE_SID 保存服务名
查看当前所在 实例
echo $ORACLE_SID
或
SQL>show parameter name;
SQL>select name from v$database;
$ORACLE_BASE 文件夹下是admin和product
5.Oracle常用命令
1.怎么查看 oracle 所有用户
select * from dba_users;
- 只查询用户和密码
select username,password from dba_users;
- 查询当前用户信息
select * from dba_ustats;
- 查询用户可以访问的视图文本
select * from dba_varrays;
- 查询数据库中所有视图的文本
select * from dba_views;
select distinct tablespace_name from SYS.DBA_FREE_SPACE where tablespace_name like '%RB%';
select * from dba_objects where object_name='JDE900_F0005';
select * from rbods.jde900_f0005;
select * from rbodm.dim_company;
查看当前用户的缺省表空间
select username,default_tablespace from user_users
查看当前用户的角色
select * from user_role_privs
查看当前用户的系统权限和表级权限
select * from user_sys_privs
select * from user_tab_privs
查看用户下所有的表
select * from user_tables
显示用户信息(所属表空间)
select default_tablespace,temporary_tablespace from dba_users
显示当前会话所具有的权限
select * from session_privs
显示指定用户所具有的系统权限
select * from dba_sys_privs
显示特权用户
select * from v$pwfile_users
查看名称包含log字符的表
select object_name,object_id from user_objects where instr(object_name,'log')>0
查看某表的创建时间
select object_name,created from user_objects where object_name='ZW_YINGYEZ'
查看某表的大小
select sum(bytes)/(1024*1024) tablesize from user_segments where segment_name='ZW_YINGYEZ'
查看放在ORACLE的内存区里的表
select table_name,cache from user_tables where instr(cache,'Y')>0
查看索引个数和类别
select index_name,index_type,table_name from user_indexes order by table_name
查看索引被索引的字段
select * from user_ind_columns where table_name='CB_CHAOBIAOSJ201004'
查看索引的大小
select sum(bytes)/(1024*1024) as indexsize from user_segments where segment_name=upper('AS_MENUINFO')
查看视图信息
select * from user_views
查看同义词的名称
select * from user_synonyms
查看函数和过程的状态
select object_name,status from user_objects where object_type='FUNCTION'
select object_name,status from user_objects where object_type='PROCEDURE'
查看函数和过程的源代码
select text from all_source where owner=user and name='SF_SPLIT_STRING'
查看表字段
select cname from col where tname='ZW_YINGYEZ'
select column_name from user_tab_columns where table_name='ZW_YINGYEZ'
查看oracle版本命令:
select * from v$version
解锁用户
alter user RDSYSEDUV79513566 account unlock;
修改用户密码(修改用户KEYAN_13566 的密码为 sxri_kygl)
alter user KEYAN_13566 identified by sxri_kygl;
修改用户名
1.1 查出需要修改用户的id(个人理解是id,不一定准确)
SQL> select user#, name from user$ where name='TEST';
1.2 更改用户名
SQL> update user$ set name=‘TEST_NEW‘ where user#=需修改的用户ID;
6.sqlplus连接数据库的几种方法
1.sqlplus / as sysdba
sqlplus / as sysdba
操作系统认证,不需要数据库服务器启动listener,也不需要数据库服务器处于可用状态。比如我们想要启动数据库就可以用这种方式进入,然后通过startup命令来启动。
- sqlplus username/password
sqlplus username/password
连接本机数据库,不需要数据库服务器的listener进程,但是由于需要用户名密码的认证,因此需要数据库服务器处于可用状态才行。
- sqlplus usernaem/password@orcl
sqlplus usernaem/password@orcl
通过网络连接,这是需要数据库服务器的listener处于监听状态。此时建立一个连接的大致步骤如下
a. 查询sqlnet.ora,看看名称的解析方式,默认是TNSNAME
b. 查询tnsnames.ora文件,从里边找orcl的记录,并且找到数据库服务器的主机名或者IP,端口和service_name
c. 如果服务器listener进程没有问题的话,建立与listener进程的连接。
d. 根据不同的服务器模式如专用服务器模式或者共享服务器模式,listener采取接下去的动作。默认是专用服务器模式,没有问题的话客户端,就连接上了数据库的server process。
e. 这时连接已经建立,可以操作数据库了。
4.sqlplus [username]/[password]@[host]:[port]/[sid]
sqlplus [username]/[password]@[host]:[port]/[sid]
将数据库地址、端口号、SID、用户名、密码都输进去,这种方法最简单,只要有sqlplus就能使用,不需要配置。
示例: