2017年6月

ssh远程执行命令

配置ssh免密码登陆以后直接连ssh执行命令比较方便,要么得每次输入密码,当然也可以用expect实现免密码登录,ssh执行命令的格式如下:

ssh user@IP "cd /home ; ls"

双引号,必须有。如果不加双引号,第二个ls命令在本地执行
分号,两个命令之间用分号隔开.
有些远程执行的命令内容较多,单一命令无法完成,可以脚本方式实现:

#!/bin/bash
ssh user@IP > /dev/null 2>&1 << EOF
cd /home
......
......
exit
EOF
echo done!

远程执行的内容在“<< EOF ” 至“ EOF ”之间,在远程机器上的操作就位于其中,注意的点:

<< EOF,ssh后直到遇到EOF这样的内容结束,EOFf可以随便修改成其他形式。
重定向目的在于不显示远程的输出了
在结束前,加exit退出远程节点

查看Oracle数据库名和实例名、主机名

查看数据库名

SQL> select name from v$database;

NAME
---------
ORCL

查看实例名:

SQL> select instance_name from v$instance;

INSTANCE_NAME
----------------
orcl

可以使用desc v$database 查看库结构,和用desc v$instance 查看实例结构;
查看主机名:

select host_name from v$instance;

yum安装报错解决版本冲突

CentOS6.4 在yum groupinstall "General Purpose Desktop" "Desktop Platform" -y的时候报错如下:

Error:  Multilib version problems found. This often means that the root
       cause is something else and multilib version checking is just
       pointing out that there is a problem. Eg.:
       
         1. You have an upgrade for libXi which is missing some
            dependency that another package requires. Yum is trying to
            solve this by installing an older version of libXi of the
            different architecture. If you exclude the bad architecture
            yum will tell you what the root cause is (which package
            requires what). You can try redoing the upgrade with
            --exclude libXi.otherarch ... this should give you an error
            message showing the root cause of the problem.
       
         2. You have multiple architectures of libXi installed, but
            yum can only see an upgrade for one of those arcitectures.
            If you don't want/need both architectures anymore then you
            can remove the one with the missing update and everything
            will work.
       
         3. You have duplicate versions of libXi installed already.
            You can use "yum check" to get yum show these errors.
       
       ...you can also use --setopt=protected_multilib=false to remove
       this checking, however this is almost never the correct thing to
       do as something else is very likely to go wrong (often causing
       much more problems).
       
       Protected multilib versions: libXi-1.7.8-1.el6.x86_64 != libXi-1.6.1-3.el6.i686
Error: Protected multilib versions: libXext-1.3.3-1.el6.x86_64 != libXext-1.3.1-2.el6.i686

解决方法如下:

yum update libXi libXext libXrender -y
yum install libXi-1.6.1-3.el6.i686  libXext-1.3.1-2.el6.i686 -y

更新、安装以后,在重新yum groupinstall "General Purpose Desktop" "Desktop Platform" -y 即可。

CentOS6.x下配置Oracle 11gR2为系统服务自动启动

在Windows下安装完成Oracle 11gR2后,默认就开机自启动Oracle相关服务,Linux下安装完后每次都得手动启动和关闭数据库(dbstart | dbshut)、监听器(lsnrctl)、控制台(emtcl),比较麻烦,以下为降oracle添加为服务,随系统自动启动,方法如下:
1、修改dbstart和dbshut启动关闭脚本,使其启动数据库的同时也自动启动监听器(即启动数据库时启动监听器,停止数据库时停止监听器):

vim /data/app/oracle/product/11.2.0/db_1/bin/dbstart
找到ORACLE_HOME_LISTNER=$1
将此处的 ORACLE_HOME_LISTNER=$1 修改为 ORACLE_HOME_LISTNER=$ORACLE_HOME

修改dbshut脚本:

vim /data/app/oracle/product/11.2.0/db_1/bin/dbshut
将此处的 ORACLE_HOME_LISTNER=$1 修改为 ORACLE_HOME_LISTNER=$ORACLE_HOME

---阅读剩余部分---

Oracle数据库的启动与关闭及参数说明

启动oracle数据库:

su - oracle #切换到oracle用户

sqlplus / as sysdba #以超级管理员权限登录

startup #启动数据库实例

quit #退出

lsnrctl start #启动监听

startup参数说明:有7个参数:nomount、mount、open、force、restrict、recover、pfile=filename

startup #不带任何参数,启动数据库实例并打开数据库,一般选择这种启动方式

startup open #startup缺省的参数就是open,打开数据库,允许数据库的访问。当前实例的控制文件中所描述的所有文件都已经打开。

startup nomount #仅仅通过初始化文件,分配出sga区,启动数据库后台进程,没有打开控制文件和数据文件。不能任何访问数据库。

startup mount #mount数据库,仅仅给dba进行管理操作,不允许数据库的用户访问。仅仅只是当前实例的控制文件被打开,数据文件未打开。

startup pfile = FILENAME #以FILENAME为初始化文件启动数据库,不是采用缺省初始化文件。

startup force #中止当前数据库的运行,并开始重新正常的启动数据库。如果在用正常方式启动数据库时遇到了困难,可以使用STARTUP FORCE选项。STARTUP FORCE选项首先异常关闭数据库,然后重新启动它。

startup restrict #只允许具有restricted session权限的用户访问数据库。在数据库启动时进入受限制状态 当要进行如下操作时,必须将数据库置于受限状态:
A:执行数据导入和导出
B:使用SQL*LOADER 提取外部数据
C:需要暂时拒绝普通用户访问数据库
D:进行数据库移植或者升级操作

startup open recover #数据库启动,并开始介质恢复。如果用户要求介质恢复,可以启动一个实例,装入指向实例的数据库,并自动地启动恢复程序。

关闭oracle数据库

su - oracle #切换到oracle用户

lsnrctl stop #关闭监听器

sqlplus / as sysdba  #以超级管理员权限登录

shutdown immediate #关闭数据库实例

quit #退出

shutdown参数说明:shutdown有四个参数:normal、transactional、immediate、abort。缺省不带任何参数时表示是normal

normal #等待所有的用户断开连接,执行命令后不允许新连接

immediate #等待用户完成当前的语句后,再断开用户连接,不允许新用户连接

transactional #等待用户完成当前的事务后断开连接,不允许新用户连接

abort #强行断开连接并直接关闭数据库

前面三种方法不会导致数据库出错,最后一种方法非特殊状况不建议使用,

对于normal、transactional、immediate,db buffer cache的内容被写入了数据文件,没有提交的事务被回滚,所有的资源被释放,数据库被“干净”的关闭。

对于abort,db buffer cache的内容没有写入数据文件,没有提交的事务也没有回滚。数据库没有DISMOUNT和关闭,数据文件也没有关闭。当数据库启动时,需要通过REDO LOG恢复数据,通过回滚段对事务回滚,对资源进行释放。

一般使用shutdown immediate关闭数据库

备注:如果执行shutdown immediate出现ORA-01012: not logged on错误

请先执行以下语句

ps -ef|grep ora_dbw0_$orcl

kill -9 pid #pid为进程号

其中orcl 是数据库的SID

Oracle实例启动时报ORA-00845的解决方法

startup启动数据库的时候报错:
ORA-00845: MEMORY_TARGET not supported on this system
在Oracle 11g中如果采用AMM内存管理,那么当MEMORY_TARGET的值大于/dev/shm的时候,就会报ORA-00845: MEMORY_TARGET not supported on this system错误,解决办法增加/dev/shm大小,在redhat系列系统中,/dev/shm的默认值是系统总内存的一半

1、修改/dev/shm大小

df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3             140G   57G   76G  43% /
/dev/sda1              99M   12M   82M  13% /boot
tmpfs                 3.9G  995M  3.0G  25% /dev/shm
mount -o size=8G -o nr_inodes=1000000 -o noatime,nodiratime -o remount /dev/shm


---阅读剩余部分---

Oracle11gR2启动报错 ORA-01078: failure in processing system parameters

在启动Oracle数据库时报错,如下:
[oracle@localhost ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Sat Feb 16 19:43:43 2013
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/home/oracle/app/oracle/product/11.2.0/dbhome_1/dbs/initorcl.ora'

原因分析:

这是因为在oracle10g和oracle11g中,数据库默认将使用spfile启动数据库,如果spfile不存在,则就会出现上述错误。

方法一:

将$ORACLE_BASE/admin/数据库名称/pfile目录下的init.ora.012009233838形式的文件copy到$ORACLE_HOME/dbs目录下initoracle.ora即可。(注:initoracle.ora中的oracle为你的实例名 ORACLE_SID)

cp $ORACLE_BASE/admin/etl_repo/pfile/init.ora.38201821922 $ORACLE_HOME/dbs

方法二:

将$ORACLE_HOME/dbs目录下spflieorcl.ora改名为spfilecenter.ora即可。(注:spfilecenter.ora中的center为环境变量中设置的SID,我的是center)

方法三:

拷贝pfile文件下的init.ora.61420130339到dbs下,并重命名成init+实例名.ora即可
{{{
[oracle@localhost oracle]$ find /u01 -name pfile
/u01/app/admin/orcl/pfile
[oracle@localhost oracle]$ cd /u01/app/admin/orcl/pfile
[oracle@localhost pfile]$ ls
init.ora.61420130339
[oracle@localhost pfile]$ cp init.ora.61420130339 /u01/app/oracle/dbs/initdevdb.ora
}}}

Rhel/CentOS只更新安全补丁

一般主要用于生产环境的机器,安装yum插件即可:
yum install yum-security

使用:检查安全更新
yum --security check-update

只安装安全更新
yum update --security

检查特定软件有无安全更新
列出更新的详细信息
yum info-security software_name

LVM逻辑卷基础操作

LVM的全称是Logical Volume Manager(逻辑卷管理)。是Linux下的一种磁盘分区管理机制,方便给分区(逻辑分区)扩容和压缩。最简单的可以理解成原始的磁盘分区管理是单纯的给每个独立的磁盘进行分区,然后对每个分区进行管理,这样的话每次扩容和压缩空间都会很麻烦。LVM就相当于把所有磁盘的分区都揉到一起,揉成一个大磁盘或者说是大分区,然后从大的中分出小的,这样的话扩容和压缩都会变得方便。

术语解释

PV 是Physical Volume 物理卷—也就是真实的磁盘分区
VG 是Volume Group 卷组—也就是好多PV组成的一个组
LV 是Logical Volume 逻辑卷—就是从VG中分出来的分区
PE 是Physical Extent 物理区域—是PV中最小的存储单元
LE 是Logical Extent 逻辑区域—是LV中做小的存储单元





---阅读剩余部分---

This is a prerequisite condition to test whether sufficient total swap space is available on the system解决方法

安装oracle的时候swap空间设置太小,会报This is a prerequisite condition to test whether sufficient total swap space is available on the system. (more details)
Expected Value
: 15.64GB (1.6403472E7KB) 16400000
Actual Value
: 4.87GB (5111800.0KB)
类似于上面的错误,
原因是swap空间设置太小,比如内存是8G设置swap为4G就会出现这个报错,解决办法扩展swap空间即可:
方法如下:
使用dd命令创建一个4G大小的swap分区
dd if=/dev/zero of=/data/swap bs=1M count=4096

格式化刚才创建的分区
mkswap /data/swap

再使用swapon命令把这个文件分区变成swap分区
swapon /data/swap

关闭SWAP分区的命令为:swapoff /data/swap

再用free -m 查看已经扩容的了swap分区。

让swap自动挂载,需要修改etc/fstab文件, vi /etc/fstab
在文件末尾加上 /data/swap swap swap default 0 0即可。

Centos7初次开机提示Initial setup of CentOS Linux 7 (core)

安装完成centos7后出现如下提示:

Initial setup of CentOS Linux 7 (core)
1) [x] Creat user 2) [!] License information
(no user will be created) (license not accepted)
Please make your choice from above ['q' to quit | 'c' to continue | 'r' to refresh]:

解决方案:
输入【1】,按Enter键阅读许可协议,
输入【2】,按Enter键接受许可协议,
输入【q】,按Enter键退出,
输入【yes】,按Enter键确定,

重启之后即可进入图形登录界面.

CentOS7.3.x修改网卡名称

RHEL7采用dmidecode采集命名方案,来得到主板信息。
可以实现网卡名字永久唯一化,RHEL6得网卡命名会根据情况有所改变而不是唯一且固定的。
以太网:enX(X可以有下面3种类型)
无线网: wlX
电缆: wwX
o 主板板载网卡
p 独立网卡,PCI网卡
s 热插拔网卡,usb之类
xxxx(数字)表示:MAC地址+主板信息计算得出唯一的序列

Ubuntu17.04也是这种命名方式









---阅读剩余部分---

Git 命令整理

Workspace:工作区
Index / Stage:暂存区
Repository:仓库区(或本地仓库)
Remote:远程仓库

一、新建代码库

在当前目录新建一个Git代码库
$ git init

新建一个目录,将其初始化为Git代码库
$ git init [project-name]

下载一个项目和它的整个代码历史
$ git clone [url]







---阅读剩余部分---

设置MySQL的auto_increment从0开始自增

MySQL创建表以后,auto_increment的字段自增值是从1开始的,写入0会被当做null值处理从而写入当前最大值的下一个值(即表定义中auto_increment的值),如果要从0开始如何操作呢?
解决办法:
设置线程级别的参数:

SET sql_mode='NO_AUTO_VALUE_ON_ZERO';

然后truncate table tabname 清空表,然后insert的id就是0了,当然如果数据有用需要备份。

如果需要修改自增值的起始位置可以通过"alter table table_name AUTO_INCREMENT=xxxx;"进行修改,但是这个值必须比当前表内数据的最大值要大,否则会修改不生效;

修改NET_BILL表的ID为自增:

alter table `NET_BILL` CHANGE COLUMN `ID` `ID` bigint(20) NOT NULL COMMENT 'XXX表单'  AUTO_INCREMENT;   

如果表中有数据,且ID是从0开始的,会报#1062错误,解决方法:

导出NET_BILL表中的数据到temp.sql文件。
清空NET_BILL表中的所有数据。
修改ID字段为AUTO_INCREMENT。
导入temp.sql,完成。

MySQL数据列自增属性:
ISAM表

如果把一个NULL插入到一个AUTO_INCREMENT数据列里去,MySQL将自动生成下一个序列编号。编号从1开始,并1为基数递增。







---阅读剩余部分---

Ubuntu17.04设置修改网卡名称 、静态IP、DNS更新源等

新装的Ubuntu17.04默认网卡名字是enp3(后面这个数字可能会变),修改成通用的eth0,

找到GRUB_CMDLINE_LINUX=""
改为GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"

执行sudo grub-mkconfig -o /boot/grub/grub.cfg

设置静态IP及dns:

auto eth0    #默认启动网卡
iface eth0 inet static
address 192.168.121.163
gateway 192.168.120.1
netmask 255.255.254.0
dns-nameservers 192.168.121.222    #指定DNS

最后reboot重启即可,若只是修改IP直接重启网卡服务即可
sudo /etc/init.d/networking restart

sudo ifdown eth0 ; sudo ifup eth0

修改更新源为中科大更新源:

sudo mv /etc/apt/sources.list /etc/apt/sources.list_bak
sudo tee -a /etc/apt/sources.list <<-'EOF'
deb http://mirrors.ustc.edu.cn/ubuntu/ zesty main restricted

deb http://mirrors.ustc.edu.cn/ubuntu/ zesty-updates main restricted

deb http://mirrors.ustc.edu.cn/ubuntu/ zesty universe
deb http://mirrors.ustc.edu.cn/ubuntu/ zesty-updates universe

deb http://mirrors.ustc.edu.cn/ubuntu/ zesty multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ zesty-updates multiverse

deb http://mirrors.ustc.edu.cn/ubuntu/ zesty-backports main restricted universe multiverse


deb http://security.ubuntu.com/ubuntu zesty-security main restricted
deb http://security.ubuntu.com/ubuntu zesty-security universe
deb http://security.ubuntu.com/ubuntu zesty-security multiverse
EOF
apt update -y

Ubuntu17.04总体来说,比之前的版本好用多了^o^

Google Fonts替换为中科大加速

fonts.googleapis.com 在国内访问不稳定,360之前曾经提供过加速,但是后来下线了,鄙视下,对应关系如下:
fonts.gstatic.com fonts-gstatic.proxy.ustclug.org
fonts.googleapis.com fonts.proxy.ustclug.org
ajax.googleapis.com ajax.proxy.ustclug.org
themes.googleusercontent.com google-themes.proxy.ustclug.org
secure.gravatar.com gravatar.proxy.ustclug.org
直接替换即可。

焦虑是活着的体现

下午睡觉的时候做梦了,“梦见自己一个人在一个似乎以前来过但是记不起名字的地方,心里有点害怕,不知道明天在哪里,一个人恍惚的走着······”在这种悠悠的感触中,醒来了...
人为什么会忧虑,那是心里还没完全麻木,对未来对明天的不确定有意识。
生容易,活不易。
活在一线城市的外来人,都很拼,一些当地土著除外,几套房拆迁户,这没有可比性。
不要温水煮青蛙,男人,应该对自己狠一点。
eagle.jpg

父爱如山

当自己长大成熟的时候,父亲老了,走路步子蹒跚起来了,脸上皱纹如刀割一般。
人都会老,无论你我。
多回家看看陪陪,聊聊家常挺好,或者看一眼也好,人老了更多的时候需要精神上的抚慰,当然物质上也不可缺少。
早上和崽子视频,听到他那童言童语声中说“爸爸,节日快乐,爸爸辛苦了”,心里一暖,自己也是父亲了。
人生最大的快乐莫过于此吧,看着自己的孩子慢慢长大,和自己的亲人团聚在一起,一家人在一起是多么好的一件事情。
有时间常回家看看。

骑行

骑着小黄车单趟8公里多,顶着大太阳,感觉嗓子有点干了,胳膊晒的有点蜕皮,在一个状态下久了,人有时候需要找回自己,要不惰性就滋生了。
夏天还是喜欢太阳高照的天气,很晴朗,很分明,南方的那种不见太阳,却很闷热的天气很难受。
路边看到一个开这种开的花像蒲公英的树,感觉很亲切,上小学的时候,学校里面有这么一棵树,花很好看…………



---阅读剩余部分---

ssh连接linux服务器速度慢解决办法

ssh链接比较慢的时候先检查下配置文件 /etc/ssh/sshd_config里面的

GSSAPIAuthentication no
UseDNS no

如果前面带#,把#注释删掉,或者新添加入这样两行。
然后重启/etc/init.d/sshd restart服务,重新链接速度就很快了~
ssh -v IP
这样链接可以显示详细记录。

最新

分类

归档

评论

  • 安安: 都是af
  • Liang: 嗯,有点不通顺·
  • 王庭威: “MySQL互为主从...
  • Liang: 贴下编译参数和步骤,...
  • shao3911: 您好,为什么我在编译...
  • aliang: 先看是yum安装还是...
  • aliang: 将原来的nginx安...
  • yen: 3、如果要回滚的话,...
  • yen: 刚好需要升级ngin...
  • 文雨: 一些新的method...

其它