存档

‘解决方案’ 分类的存档

在CentOS 7上给一个网卡分配多个IP地址

2016年12月25日 没有评论

我们现在可以在CentOS/RHEL 7中给一个网卡分配多个ip地址。

如你所知,网卡的配置文件存储在 /etc/sysconfig/network-scripts/ 目录下。每个网卡的详细内容将会以不同的名字存储,比如ifcfg-enp0s3。

让我们看下ifcfg-enp0s3的细节。

cat /etc/sysconfig/network-scripts/ifcfg-enp0s3
示例输出:

TYPE=”Ethernet”
BOOTPROTO=”none”
DEFROUTE=”yes”
IPV4_FAILURE_FATAL=”no”
IPV6INIT=”yes”
IPV6_AUTOCONF=”yes”
IPV6_DEFROUTE=”yes”
IPV6_FAILURE_FATAL=”no”
NAME=”enp0s3″
UUID=”e9f9caef-cb9e-4a19-aace-767c6ee6f849″
ONBOOT=”yes”
HWADDR=”08:00:27:80:63:19″
IPADDR0=”192.168.1.150″
PREFIX0=”24″
GATEWAY0=”192.168.1.1″
DNS1=”192.168.1.1″
IPV6_PEERDNS=”yes”
IPV6_PEERROUTES=”yes”
好的,现在我们将在相同的子网中分配多个地址了。

编辑文件 /etc/sysconfig/network-scripts/ifcfg-enp0s3:

vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
像下面那样加入额外的IP地址。

TYPE=”Ethernet”
BOOTPROTO=”none”
DEFROUTE=”yes”
IPV4_FAILURE_FATAL=”no”
IPV6INIT=”yes”
IPV6_AUTOCONF=”yes”
IPV6_DEFROUTE=”yes”
IPV6_FAILURE_FATAL=”no”
NAME=”enp0s3″
UUID=”933cdc9b-b383-4ddd-b219-5a72c69c9cf0″
ONBOOT=”yes”
HWADDR=”08:00:27:3F:AB:68″
IPADDR0=”192.168.1.150″
IPADDR1=”192.168.1.151″
IPADDR2=”192.168.1.152″
PREFIX0=”24″
GATEWAY0=”192.168.1.1″
DNS1=”192.168.1.1″
IPV6_PEERDNS=”yes”
IPV6_PEERROUTES=”yes”
如你所见,我已经加了两个IP地址:IPADDR1=”192.168.1.151″ & IPADDR2=”192.168.1.152″

类似地,你可以加入更多的ip地址。

最后,保存并退出文件。重启网络服务来使更改生效。

systemctl restart network

现在,让我们检查是否已经加入了ip地址。

ip addr

分类: Linux, 解决方案 标签: ,

怎么查看系统安装日期

2016年12月22日 没有评论

很多朋友在使用电脑及服务器的时候都有反映越用越卡,今天,就为大家分享一下怎么查看电脑及服务器系统的安装日期,以初步判定电脑及服务器大概是由于什么情况导致的卡慢。

找到运行后,在运行栏里输入“cmd”,然后回车。

然后,我们在该界面下输入”systeminfo”,然后回车,等待系统自动运行。

系统运行完毕,找到如下界面,你就能看到如图所示的信息,即可查询到系统安装日期!

修改默认安装XenServer系统盘(4G)大小

2016年12月5日 没有评论

安装XenServer系统盘默认大小为4G,安装前我们可以调整大小。
注:此教程只适用于在全新安装XenServer的时候使用,已经安装过XenServer的无法修改系统盘(4G)大小。
注:如果带数据重装,安装的时候一定要保证XenServer系统盘的大小一定要和以前一样大,否则数据就会丢失。

1、进入XenServer系统安装界面。

2、进入高级安装菜单界面,按F2键。

3、进入命令模式
进入命令行,输入“shell”,按回车键。

4、编辑系统安装管理配置文件
编辑“constants.py”文件,在bash-3.2#后面输入如下命令:
vi /opt/xensource/installer/constants.py

5、修改安装系统盘大小
修改默认的系统盘大小,在92行,找到root_size=4096,修改为需要安装的系统盘大小 (备注:单位为MB)

6、保存并退出
“ESC”退出编辑—>输入“:wq”冒号+wq保存退出。

7、退出命令模式
退出命令模式,输入“exit” 。

8、开始安装XenServer系统

9、查看结果
安装完毕后,通过以下命令查看系统分区大小:
df -hal

分类: Linux, 解决方案 标签: ,

CentOS下一网卡多IP设置

2016年11月27日 没有评论

方法1:少量IP手动绑定(这里以绑定IP到eth0为例,其它网卡的话修改相应的文件名即可)
1.复制ifcfg-eth0的网卡配置文件并改名为ifcfg-eth0:0

[root@akinlau /]# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0:0

2.编辑ifcfg-eth0:0文件

[root@akinlau /]# vim /etc/sysconfig/network-scripts/ifcfg-eth0:0

DEVICE=”eth0:0″ //这里修改为eth0:0跟文件名保持一致
BOOTPROTO=”static” //协议为静态,用none也可以
HWADDR=”00:0C:29:6F:62:A7″ //MAC地址
ONBOOT=”yes” //开机启用此网卡
IPADDR=192.168.1.3 //新绑定的IP
NETMASK=255.255.255.0 //子网掩码
GATEWAY=192.168.1.1 //网关

修改好后保存退出,然后启用这张网卡

[root@akinlau /]# ifup eth0:0

注:有人在这一步喜欢用service network restart重启网络,其实这是没必要的,只需要启用这张网卡就可以了

然后再试ping 一下,如果能ping通的话,就可以了。

方法2:自动绑定一个IP段或多个IP段(同样这里以eth0为例,其它网卡的话修改相应的文件名即可)
1.新建ifcfg-eth0-range0文件(注意这里的文件名不要调换range的位置或写错单词,不然的话绑定的IP是不会生效的,如果你还有几段IP要绑定到eth0上的话,你可以再新建ifcfg-eth0-range1, ifcfg-eth0-range2等文件,不过这里要注意每个range文件中的定义的CLONENUM_START值不能重叠,不然的话会出问题。 )

[root@akinlau /]# /etc/sysconfig/network-scripts/ifcfg-eth0-range0

#写入以下内容

DEVICE=eth0 //绑定IP段的网卡名称
ONBOOT=yes //开机启用此网卡
BOOTPROTO=static //协议为静态
IPADDR_START=192.168.0.101 //网段的起始IP
IPADDR_END=192.168.0.120 //网段的截止IP
NETMASK=255.255.255.255 //子网掩码
CLONENUM_START=0 //这个数字是网卡别名的开始位置,比如这里的3是指eth0:0,并且会把IPADDR_START设置的IP192.168.0.101绑定到eth0:0上,以此类推
NO_ALIASROUTING=yes //这个参数的作用是数据包始终通过eth0进出,不走网卡别名(如eth0:0),设置这个参数可以加快路由的响应速度,所以强烈建议配置。

修改好后保存退出,然后重启网络:

[root@akinlau /]# service network restart

再测试一下,能不能ping就大功告成了。

解决在phpmyadmin中执行sql语句出现的错误:Unknown storage engine ‘InnoDB’

2016年10月3日 没有评论

问题:phpmyadmin报错——Unknown storage engine ‘InnoDB’

解决方法:解决方法:
1.关闭MySQL数据库
   2.修改my.ini文件,把skip-innodb这行注释掉
   3.打开MySQL数据库
当然把innodb改成MyISAM也行

原因:没有开启MySQL InnoDB存储引擎。

关于innodb引擎的资料:
事务型数据库的首选引擎,支持ACID事务,支持行级锁定。InnoDB是为处理巨大数据量时的最大性能设计。InnoDB存储引擎完全与MySQL服务器整合,InnoDB存储引擎为在主内存中缓存数据和索引而维持它自己的缓冲池。InnoDB存储它的表&索引在一个表空间中,表空间可以包含数个文件(或原始磁盘分区)。这与MyISAM表不同,比如在MyISAM表中每个表被存在分离的文件中。InnoDB 表可以是任何尺寸,即使在文件尺寸被限制为2GB的操作系统上。InnoDB默认地被包含在MySQL二进制分发中。Windows Essentials installer使InnoDB成为Windows上MySQL的默认表。

  简介   InnoDB 给 MySQL 提供了具有事务(transaction)、回滚(rollback)和崩溃修复能力(crash recovery capabilities)、多版本并发控制(multi-versioned concurrency control)的事务安全(transaction-safe (ACID compliant))型表。InnoDB 提供了行级锁(locking on row level),提供与 Oracle 类似的不加锁读取(non-locking read in SELECTs)。InnoDB锁定在行级并且也在SELECT语句提供一个Oracle风格一致的非锁定读。这些特色增加了多用户部署和性能。没有在InnoDB中扩大锁定的需要,因为在InnoDB中行级锁定适合非常小的空间。InnoDB也支持FOREIGN KEY强制。在SQL查询中,你可以自由地将InnoDB类型的表与其它MySQL的表的类型混合起来,甚至在同一个查询中也可以混合。这些特性均提高了多用户并发操作的性能表现。在InnoDB表中不需要扩大锁定(lock escalation),因为 InnoDB 的行级锁定(row level locks)适宜非常小的空间。InnoDB 是 MySQL 上第一个提供外键约束(FOREIGN KEY constraints)的表引擎。   在技术上,InnoDB 是一套放在 MySQL 后台的完整数据库系统,InnoDB 在主内存中建立其专用的缓冲池用于高速缓冲数据和索引。

MySQL

InnoDB 把数据和索引存放在表空间里,可能包含多个文件,这与其它的不一样,举例来说,在 MyISAM 中,表被存放在单独的文件中。InnoDB 表的大小只受限于操作系统的文件大小,可也可以每个表使用各自独立的表空间,只需要启用选项 innodb_file_per_table。   在 MySQL 的源代码中,从 3.23.34a 开始包含 InnoDB 表引擎,并在 MySQL -Max 的二进制版本中激活。

分类: Linux, 解决方案 标签: ,

ora-01033:oracle initialization or shutdown in progress 解决方法

2016年10月1日 没有评论

今天研究Oracle遇到了这个问题ora-01033:oracle initialization or shutdown in progress,经过分析研究终于解决了,写下来纪念一下。我的库是oracle 9i,具体就是90的。
一、首先:问题的产生原因,出现这个错误是因为我将oracle\oradata\oradb下的一个文件误删除掉后出现的。
二、现象:SQL*Plus无法连接,显示以下错误:ORA-01033: ORACLE initialization or shutdown in progress ,Enterprise Manager Console中也是同样的错误。
三、分析:应该是Oracle在启动后,用户登录时是要将方案中原有配置信息装载进入,装载过程中遇到原有文件指定的位置上没有找到,所以就报出错误。
四、解决过程:
1、我在解决时由于着急使用,便用Database Configuration Assistant工具重新创建了一个新的库,临时解决急用的问题,同时也给后期解决ora-01033问题埋下了隐患。
2、在9i中是没有svrmgrl 命令的,要用sqlplus。
3、先在windows下运行cmd,进入DOS环境。
4、以DBA用户登录,具体命令是
sqlplus /NOLOG
SQL>connect sys/change_on_install as sysdba
提示:已成功

SQL>shutdown normal
提示:数据库已经关闭
已经卸载数据库
ORACLE 例程已经关闭

SQL>startup mount
提示:ORACLE例程已经启动
Total System Global Area 118255568 bytes
Fixed Size 282576 bytes
Variable Size 82886080 bytes
Database Buffers 33554432 bytes
Redo Buffers 532480 bytes
数据库装载完毕

SQL>alter database open;
提示:
第1 行出现错误:
ORA-01157: 无法标识/锁定数据文件19 – 请参阅DBWR 跟踪文件
ORA-01110: 数据文件19: ””C:\oracle\oradata\oradb\FYGL.ORA”
这个提示文件部分根据每个人不同情况有点差别。

继续输入
SQL>alter database datafile 19 offline drop;
提示:数据库已更改。

循环使用最后两步,直到alter database open;后不再提示错误,出现“数据库已更改”。

如果出现以下。就按这样就可以恢复

第 1 行出现错误:
ORA-01172: 线程 1 的恢复停止在块 208 (在文件 3 中)
ORA-01151: 如果需要, 请使用介质恢复以恢复块和还原备份

SQL> recover database;
完成介质恢复。
SQL> alter database open;
数据库已更改。
SQL> select status from v$instance;
STATUS
————
OPEN

然后接着输入即可
SQL>shutdown normal
提示:数据库已经关闭
已经卸载数据库
ORACLE 例程已经关闭

SQL>startup
提示:ORACLE例程已经启动
Total System Global Area 118255568 bytes
Fixed Size 282576 bytes
Variable Size 82886080 bytes
Database Buffers 33554432 bytes
Redo Buffers 532480 bytes
数据库装载完毕
就可以解决了。建议是如果可以,直接重新服务器。

5、最后说一下,第一条提到的隐患,因为创建了新的库,ORACLE_SID也就发生了变化,在用户登录的时候会有ORA- 12560错误,解决这个问题是将系统注册表中的HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0 \ORACLE_SID
键值修改成之前那个SID就可以了,用户也能就能正常登录了

scp和rsync限制传输速度

2016年9月25日 没有评论

在linux下经常向其他服务器传输文件。有时在总带宽的限制下。不可能时时跑满占用带宽。这种情况下我们就需要对传输进行一定的限制和自定义。以下写出两个经常使用的传输命令的参数,希望对大家有一定帮助。

1.scp 限速100KB/s

scp -l 1000 testfiles root@192.168.1.108
此时的传输速率就是1M/8=100KB左右

2.rsync 限速100KB/s
rsync -auvzP –bwlimit=100 本地文件 远程文件
参数说明:
v:详细提示
a:以archive模式操作,复制目录、符号连接,等价于 -rlptgoD 。
z:压缩
u:只进行更新,防止本地新文件被重写,注意两者机器的时钟的同时
P:是综合了–partial –progress两个参数,
此时的rsync支持了断点续传。

通常情况下。大文件,我建议大家使用rsync。因为有断点续传。可以有更好的选择。

分类: Linux, 解决方案 标签: , , , ,

利用mysql二进制日志进行mysql数据库的恢复(转)

2016年9月4日 没有评论

对于需要确保mysql数据库完整性的网站,mysql的二进制日志至关重要。比如你做了mysql数据库的主从备份,你认为这应该能确保mysql从数据库是最新的内容了,这的确没错,但有一种情况,比如你误删除了数据,或者被黑客入侵而清除了数据库,这时mysql从服务器也会跟主数据库同步,这是你不想看到的,但数据确实没了。但是如果你每天进行了数据库的完整备份,而且mysql的二进制日志还在的话,这将有可能恢复最新的数据。下面介绍方法。

1、开启二进制日志
在使用二进制日志恢复数据库时,请确保你已经开启二进制日志,检查my.cnf文件是否存在log-bin=mysql-bin。

2、定期完整备份
你还需要间隔一定的时间做数据库的完整备份,只有这样你才有可能快速的恢复最新数据。

3、查看备份时间
查看你备份的时间,如dedecmsv57gbksp1.sql,取最后一行:– Dump completed on 2012-11-08 11:11:48。

4、导出二进制日志
暂时关闭网站,防止新数据写入,导出二进制日志:

mysqlbinlog mysql-bin.000001 -d dedecmsv57gbksp1 –start-datetime=”2012-11-08 11:11:48″ >binlog.sql

5、调整binlog.sql
编辑binlog.sql,删除误操作的语句。

6、导入数据
重建数据库dedecmsv57gbksp1,导入dedecmsv57gbksp1.sql,接着导入binlog.sql。

Ubuntu 解决ssh登录不上permission denied

2016年8月7日 没有评论

新版本的ubuntu server版本安装完成后是默认不能ssh直接登陆的。要配置密钥配合。这样其实很麻烦。

ssh不能登录上,就修改sshd的默认配置
ssh出现permission denied (publickey)问题:

修改/etc/ssh/sshd-config文件.

将其中的PermitRootLogin no修改为yes

PubkeyAuthentication yes修改为no

AuthorizedKeysFile .ssh/authorized_keys前面加上#屏蔽掉,

PasswordAuthentication no修改为yes就可以了。

有关key的文件都先#注释掉吧。重启一下应该可以连了。建议这些都使用SSH Secure Shell 或者 SecureCRT。
如果要用putty,建议使用版本0.63以上。

分类: Linux, 解决方案 标签: ,

出现Visual Studio Just-In-Time Debugger的解决方法

2016年8月1日 没有评论

经常弹出“Visual Studio Just-In-Time Debugger” 对话框,内容是:“An unhanled win32 exception occurred in explorer.exe[2548]. just-in-time debuenabled. in visual studio,just-in-debugging can be enabled from tools/options/debugging/just-in-time.‘check the documentation index for ‘just-in-timedebugging,errors’for more information无论你选哪一项或直接关闭都会导致程序关闭。
  遇到这种问题首先肯定是上网搜索各种解决方法,但好像只有一种方法,点选[开始]>[执行],在“开启”对话框中键入以下指令:
  drwtsn32 -i
  点选[确定],这个指令将会把Dr.Watson设定成预设的Debugger工具,这样就不会让您每次都会跳出这样的错误讯息了。
  装完之后这个问题就没有再出现,不过网上也有人找不到drwtsn32这个程序。
  这里提高一下某位高手的解决方法,虽然没有试过,但是可以试试!!
  解决方法在CSDN博客中:http://blog.csdn.net/bright60/archive/2006/08/24/1111592.aspx
  出现这种情况,往往是因为原先安装有VS,后来因某些原因(比如:卸载)导致VS无法使用!!
  当系统中的有些软件出现错误时,会自动调用vs进行调试,但因为VS无法使用,就出现了visual studio just-in-time debugger窗口。
  此方法主要就是删除指定的注册表

32位系统处理方法:use the registry editor to delete the following registry keys:
  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger
  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\DbgManagedDebugger

  64位系统处理方法:On a 64-bit operating system also delete the following registry keys:
  HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger
  HKEY_LOCAL_MACHINE\SOFT

  用vbs写:
  Set WshShell=CreateObject(“Wscript.Shell”)
  WshSHell.RegDelete “HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger”WshSHell.RegDelete “HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\DbgManagedDebugger”msgbox “sucsess”