接续putty,输入ip地址,端口号一般默认填好的,不需要更改 点击OPEN,进行接续 输入用户名,密码 切换用户
sudo su oracle
系统环境:centos 7.0
引文:在实验室的服务器上给每个人分配了一个账号,但是有的时候普通用户需要使用root权限,比如装一些软件之类的。下面介绍怎么给普通用户添加sudo命令权限。
前提: sudo安装完成
没配置之前希望在普通用户下,通过sudo命令,让用户暂时拥有root权限,并创建一个文件夹。很明显,失败了,错误原因是:该用户暂没有root权限。 解决办法如下
切换到root用户下,cd root,运行visudo命令,visudo命令是用来编辑修改/etc/sudoers配置文件
[root@master ~]# visudo 如下图所示,打开sudoers文件
找到如下图所示
root ALL=(ALL) ALL
给liudiwei添加sudo权限 在“root ALL=(ALL) ALL”这一行下面,再加入一行:
liudiwei ALL=(ALL) ALL :wq保存退出!
切换到普通用户
su liudiwei cd ~ sudo mkdir test
恭喜,验证密码后,通过!如图所示: 使用sudo命令执行mkdir test,那么test是以root用户来创建的。
补充:如果想以后每次使用sudo的时候不再验证密码,可以在刚刚的sudoers文件做如下操作: 其中timestamp_timeout=-1只需验证一次密码,以后系统自动记忆,runasp需要root密码,如果不加默认是要输入普通账户的密码.
find / -name network.service
cat /etc/inittab (不用了)
systemctl set-default TARGET.target 将TARGET换成截图中multi-user 或 graphicat
systemctl set-default multi-user.target
如果不设置环境变量 设置了环境变量
家目录下的.bash_profile或/etc/profile.d/
cd到家目录下的.bash_profile前需要切换用户 sudo su – oracle cd到/etc/profile.d/前需要切换用户 Sudo su – root
cd ~ ls –a .bash_profile cd ~/.bash_profile 只针对于当前的用户 cd /etc/profile.d/ 针对于所有用户都好用 cat /etc/profile
方法一:直接运行export命令定义变量,该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,shell关闭了,变量也就失效了,再打开新shell时就没有这个变量,需要使用的话还需要重新定义。
以设置oracle环境变量为例
export ORACLE_BASE=/opt/oracle; export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_SID=orcl; export PATH=$ORACLE_HOME/bin:$PATH;or
export ORACLE_HOME=/opt/oracle/product/11.2.0/dbhome_1/; export ORACLE_SID=orcl; PATH=$PATH:$ORACLE_HOME/bin /*export PATH=$ORACLE_HOME/bin:$PATH; */方法二:在用户目录下的.bash_profile文件中增加变量,改变量仅会对当前用户有效,并且是“永久的”。
export ORACLE_BASE=/opt/oracle; export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_SID=orcl; export PATH=$ORACLE_HOME/bin:$PATH;or
export ORACLE_HOME=/opt/oracle/product/11.2.0/dbhome_1/; export ORACLE_SID=orcl; PATH=$PATH:$ORACLE_HOME/bin /*export PATH=$ORACLE_HOME/bin:$PATH; */方法三: 在/etc/profile文件中添加变量,该变量将会对Linux下所有用户有效,并且是“永久的”。
export ORACLE_BASE=/opt/oracle; export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_SID=orcl; export PATH=$ORACLE_HOME/bin:$PATH;or
export ORACLE_HOME=/opt/oracle/product/11.2.0/dbhome_1/; export ORACLE_SID=orcl; PATH=$PATH:$ORACLE_HOME/bin /*export PATH=$ORACLE_HOME/bin:$PATH; */方法四: 在/etc/profile.d下创建oracle.sh,在此oracle.sh文件中添加变量(推荐) ①切换root用户 ②sudo touch oracle.sh ③sudo vim oracle.sh ④添加变量 ⑤source oracle.sh
Linux 环境下/etc/profile和/etc/profile.d 的区别 区别:
两个文件都是设置环境变量文件的,/etc/profile是永久性的环境变量,是全局变量,/etc/profile.d/设置所有用户生效 /etc/profile.d/比/etc/profile好维护,不想要什么变量直接删除/etc/profile.d/下对应的shell脚本即可,不用像/etc/profile需要改动此文件
https://blog.csdn.net/weixin_42161670/article/details/90517494
配置环境变量时为什么更推荐 /etc/profile.d下创建oracle.sh自定义文件的方法? 直接在vi /etc/profile里配置不就行么? 以下就是原因 因此最好在 /etc/profile.d下建一个自定义.sh文件来配置环境变量
connect scott/tiger connect sys/oracle as sysdba connect sys as sysdba scott 是 oracle创始人,一般都有他,用于测试
方法一 1.root用户登录putty
2.切换至oracle用户
su - oracle
3.切换到sqlplus操作
sqlplus /nolog
切换成功会提示相关的提示:例如: SQL*Plus: Release 11.2.0.2.0 Production on Thu Jan 19 11:19:48 2012 Copyright © 1982, 2010, Oracle. All rights reserved.
4.输入数据库的用户名和密码
connect scott/tiger
5.会提示Connected.(连接成功),显示 SQL> :
方法二 接着方法一第3个步骤开始
3.切换到sqlplus操作
sqlplus sys/oracle as sysdba
4.启动库
startup
5.正常显示如下 ORACLE instance started.
Total System Global Area 409194496 bytes Fixed Size 2213856 bytes Variable Size 310380576 bytes Database Buffers 92274688 bytes Redo Buffers 4325376 bytes Database mounted. Database opened.
但如果出现如下问题 [root@db01 profile.d]# sqlplus sys/oracle as sysdba SQL*Plus: Release 11.2.0.1.0 Production on Sun May 19 11:02:23 2019 Copyright © 1982, 2009, Oracle. All rights reserved. Connected to an idle instance. SQL> startup ORA-00845: MEMORY_TARGET not supported on this system 解决办法 原因是内存分配少了,加大内存即可(具体没操作过)
6.输入数据库的用户名和密码
connect scott/tiger
7.会提示Connected.(连接成功),显示 SQL> :
如果没连接成功则会提示下述error信息,说明该用户被锁了 ERROR: ORA-28000: the account is locked Warning: You are no longer connected to ORACLE. Connect sys
解决办法 解锁scoot的用户 alter user scott account unlock;
8.更新密码 你是普通用户的话,修改自己的密码,用:passwd,就可以了,会让你先输入自己的旧密码,再输入两遍新密码。 你是root的话,用:password username,就可以修改username的密码了,直接输入两遍新密码就可以了,不用输入旧密码。
(1) 查询的语句后面要一定要加 ; ,否则不能执行查询,相当于plsqldev.exe工具的命令窗口的操作 select *from newuseraccount (记得查询的时候一定要加;) select email,password from userreg where accountstype=1 and userstate=1;
(2)插入或更新的语句记得还要加提交语句,才能提交事务。相当于plsqldev.exe工具的命令窗口的操作。 update newuseraccount set address=‘20-青海-0-西宁市’ where userid=638 ; commit ;
idle>create table test1(id varchar(20),name varchar(20)); Table created. idle>insert into test1 values('1','li'); 1 row created. idle>select * from test1; ID NAME -------------------- -------------------- 1 li1.winscp将安装包拖到机器里面 /opt/soft
rlwrap-0.42-1.el7.x86_64.rpm
2.root用户下执行以下命令,运行它
yum install –y rlwrap-0.42-1.el7.x86_64.rpm y enter
3.然后上下左右键就好用了 Complete
4.运行sqlplus
rlwrap sqlplus
首先连接数据库
sqlplus Enter user-name: sys/oracle as sysdba SQL> connect scott/tiger select * from t1;
cd /etc/profile.d sudo vim oracle.sh alias sqlplus=‘rlwrap sqlplus’ alias sqls=‘rlwrap sqlplus sys/oracle as sysdba’ alias sqlsc=‘rlwrap sqlplus scott/tiger’
别名参数分析:
alias sqlplus=‘rlwrap sqlplus’ 先sqlplus再输入用户名和密(其中rlwrap是一个插件,可以帮助sqlplus后识别方向)
alias sqls=‘rlwrap sqlplus sys/oracle as sysdba’ 用sys用户登陆
alias sqlsc=‘rlwrap sqlplus scott/tiger’ 用scott用户登陆
想进行什么方式的连接,只需要在命令行键入别名即可
连接数据库时的不同连接方式起完别名后alias sqlsc=‘rlwrap sqlplus scott/tiger’sqlscalias sqls=‘rlwrap sqlplus sys/oracle as sysdba’sqlsalias sqlplus=‘rlwrap sqlplus’sqlplus输入
showuser
会显示
USER is “SCOTT”
SQL> select user from dual; SQL> select sysdate from dual; Insert into t1 values(2,’b’); select user,global_name from global_name; idle>select user||’@’||global_name from global_name; col user format a10
刚開始接触Oracle的时候,有时候一登陆一个生产环境。常常会出现以下的情况: <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< [oracle@rh64 app]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Thu May 15 03:17:34 2014 Copyright © 1982, 2013, Oracle. All rights reserved.
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options
SP2-0103: Nothing in SQL buffer to run.
Session altered.
Elapsed: 00:00:00.00 sys@ora11g(34)> <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 上面会显示你是用哪个用户登录的,登陆数据库的实例名,还有操作的时间日志等信息。
事实上这样也能提高用户的警惕性,时刻提醒自己是以 什么用户运行操作的。要细心,不要产生误操作。事实上这个定义很easy,仅仅要细致看过Oracle官方文档的人就知道怎么设置了。以下是官方文档的位置 我使用的11.2.0.4的官方文档,可是位置都是一样的。
SQLPLUS的设置文件有两个。 一个是在$ORACLE_HOME/sqlplus/admin/glogin.sql 这个叫做Site Profile File。每次以sqlplus进去的时候,sqlplus都会第一先读取这个文件,所以假设你想在全局设置,让全部登录数据库的用户都能使用。那就在这里定义就OK了。
另一个是叫做User Profile File 。一般放在/opt/oracle/product/11.2.0/dbhome_1/sqlplus/login.sql 顾名思义就是个人的profile文件。能够定义成login.sql,事实上这个放在哪里都能够,他会遍历你当前这个文件夹的文件看看有没有login.sql。假设有,就会读取并进行设置。然后覆盖glogin.sql里面的东西。
常用环境设置命令
设置sqlplus登录的username和instance SQL> set sqlprompt '_user @&_CONNECT_IDENTIFIER> ’ SYS @demo >打开/关闭sql语句返回的记录条数 set feedbak on/offset打开/关闭sql语句运行时间统计 set timing on/off打开/关闭系统时间显示 set time on/off例子
[oracle@rh64 ~]$ pwd /home/oracle [oracle@rh64 ~]$ cat login.sql define _editor=vi set serveroutput on size 1000000 set trimspool on set timing on set long 5000 set pagesize 5000 set linesize 1024 column plan_plus_exp format a80 column global_name new_value gname alter session set nls_date_format=‘yyyy-mm-dd hh24:mi:ss’; set termout off define gname=idle column global_name new_value gname select lower(user)||’@’||lower(instance_name)||’(’||(select distinct sid from v m y s t a t ) ∣ ∣ ′ ) ′ g l o b a l n a m e f r o m v mystat)||')' global_name from v mystat)∣∣′)′globalnamefromvinstance; set sqlprompt '&gname> ’ set termout on [oracle@rh64 ~]$
如果有一个比较好的glogin.sql的模板,你想使用它,就可以进行如下替换 1.接续数据库
connect sys/oracle as sysdba
2.cd到oracle dbhome1下
/opt/oracle/product/11.2.0/dbhome_1
cd sqlplus/ ls cat glogin.sql
cat内容显示如下: 3.用winscp替换glogin.sql 替换目录: /opt/oracle/product/11.2.0/dbhome_1/sqlplus/admin
公司硬盘不够用了,新买了一个存储,需要挂载到现在的系统上。在Linux下如何挂载,具体步骤如下:
1.新增虚拟硬盘方式 df -h 查看硬盘使用情况,发现根分区使用已满 使用工具创建新的VHD,disk2.vhd new一个新的分区 2.查看是否已经分配
[root@localhost home]# fdisk -l 磁盘 /dev/sda:64.4 GB, 64424509440 字节,125829120 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x000a47ad 设备 Boot Start End Blocks Id System /dev/sda1 * 2048 1026047 512000 83 Linux /dev/sda2 1026048 125829119 62401536 8e Linux LVM 磁盘 /dev/sdb:1649.3 GB, 1649267441664 字节,3221225472 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节3.发现有磁盘,路径为/dev/sdb。然后使用fdisk命令进行建立分区
[root@localhost home]# fdisk /dev/sdbfdisk命令如下:
命令(输入 m 获取帮助):m 命令操作 a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition g create a new empty GPT partition table G create an IRIX (SGI) partition table l list known partition types m print this menu n add a new partition o create a new empty DOS partition table p print the partition table q quit without saving changes s create a new empty Sun disklabel t change a partition's system id u change display/entry units v verify the partition table w write table to disk and exit x extra functionality (experts only)4.一直enter,最后保存分区
命令(输入 m 获取帮助):w The partition table has been altered! Calling ioctl() to re-read partition table. 正在同步磁盘。5.使用fdisk -l命令查看,已经有分区了
磁盘 /dev/sdb:1649.3 GB, 1649267441664 字节,3221225472 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0xe0bc0098 设备 Boot Start End Blocks Id System /dev/sdb1 2048 3221225471 1610611712 83 Linux6.建好分区后要格式化分区,建立文件系统
Mkfs +TAB mkfs.ext4 /dev/sdb17.这样文件系统就建好了,然后选择一个挂载点挂上就可以了,我挂载在DATA/oradata/下了
mkdir -p /DATA/oradata chown oracle:oinstall /DATA/oradata mount /dev/sdb1 /DATA/oradata/8.检验挂载是否成功
df -h9.修改一下系统配置加入下列行到/etc/fstab,让系统启动后自动挂载,否则有可能会掉啊 Mount只挂在一次 ,要挂载到磁盘上
/etc/fstab vim /etc/fstab 加一行 /dev/sdb1 /DATA/oradata ext4 defaults 0 0 保存 退出[root@db01 ~]# cd /opt/ [root@db01 opt]# cd oracle/ [root@db01 oracle]# ls admin cfgtoollogs checkpoints diag flash_recovery_area oradata product [root@db01 oracle]# cd oradata/ [root@db01 oradata]# ls orcl [root@db01 oradata]#
sqls
Shutdown immediate
Ps:因为我重启了,orcl已经是shutdown状态了,我无需重启 DB断电,坏块儿,数据库起不了,通过手动启动 DB一般不作随机启动
到这儿就mv完了
[oracle@db01 oradata]$ cd /opt/oracle [oracle@db01 oracle]$ ls admin cfgtoollogs checkpoints diag flash_recovery_area oradata product[oracle@db01 oracle]$ mv oradata oradatabk
在/oradata /opt/oracle/下创建一个快捷方式,
[oracle@db01 oracle]$ ln -s /DATA/oradata /opt/oracle/oradata
显示 [oracle@db01 oracle]$ ls admin checkpoints flash_recovery_area oradatabk cfgtoollogs diag oradata product
sqls
显示 SQL*Plus: Release 11.2.0.1.0 Production on Sun May 19 14:43:26 2019
Copyright © 1982, 2009, Oracle. All rights reserved.
Connected to an idle instance.
Startup Ps:start up是错误的,得敲成startup
显示 idle>startup ORACLE instance started.
Total System Global Area 409194496 bytes Fixed Size 2213856 bytes Variable Size 310380576 bytes Database Buffers 92274688 bytes Redo Buffers 4325376 bytes Database mounted. Database opened. idle>
Vim /etc/sysconfig/network-scripts/ifcfg-ens33
保存>退出
Systemctl restart NetworkManager Ip a s Ping www.baidu.com
在VM下重启
Restart network
软链接参照: https://www.ibm.com/developerworks/cn/linux/l-cn-hardandsymb-links/index.html
systemctl status firewalld #systemctl stop firewalld #systemctl disable firewalld
shutdown immediate startup
login as: root root@192.168.1.20’s password: [root@db01 ~]# sudo su - oracle Last login: Sun May 19 14:33:01 CST 2019 on pts/0 [oracle@db01 ~]$ sqls SQL*Plus: Release 11.2.0.1.0 Production on Sun May 19 15:57:20 2019 Copyright © 1982, 2009, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options sys@ORCL>shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. sys@ORCL>sys@ORCL>sys@ORCL>sys@ORCL>sys@ORCL>sys@ORCL> sys@ORCL> sys@ORCL> sys@ORCL>startup ORACLE instance started. Total System Global Area 409194496 bytes Fixed Size 2213856 bytes Variable Size 310380576 bytes Database Buffers 92274688 bytes Redo Buffers 4325376 bytes Database mounted. Database opened.每次commit缓冲的是哪一个flush 数据仅存在buffer cache(缓存)里的话,数据会不会消失? 会 只有卸载data file里才不会丢失
如果我的数据在内存里头,commit以后,断电了,数据会不会消失? 》可以通过log恢复
如果数据被写到硬盘里了,断电后,数据数据会不会消失? 》不会
为什么要分这两块内容? 》因为datafile处理的东西特别复杂,做一道菜30分钟,会一直记录 Redo之需记录一道菜需要30分钟即可
》oracle是存到缓存之前记录 Mysql是存到缓存之后记录
sqlplus 用scott用户登陆为何报如下错误? ERROR: ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist Linux-x86_64 Error: 2: No such file or directory
find / -name network.service是干嘛用的?
https://blog.csdn.net/archer119/article/details/77824017 https://www.cnblogs.com/wzjhoutai/p/6956335.html https://blog.csdn.net/s630730701/article/details/51675357 http://www.cnblogs.com/kex1n/p/5193826.html