解决MacOS xcrun: error: invalid active developer path, missing xcrun的问题

最近开始把VS Code做为主力代码编辑器,结果在MAC上每次打开总提示

Git installation not found.

没有就装呗,打开Console,Git显示

xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

重装Xcode command line tool解决

xcode-select  --install

Oracle 12C静默删除CDB

Oracle 12C引入了CDB与PDB的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)。CDB全称为Container Database,中文翻译为数据库容器,PDB全称为Pluggable Database,即可插拔数据库。

在安装或者维护数据库的过程中,可以通过DBCA对CDB进行静默删除(别问我为什么知道:))。步骤如下:

#dbca -silent -deleteDatabase -sourceDB CDB数据库名

耐心等待至命令完成,正常情况下会出现以下提示:

 
Connecting to database
4% complete
9% complete
14% complete
19% complete
23% complete
28% complete
47% complete
Updating network configuration files
52% complete
Deleting instance and datafiles
76% complete
100% complete
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/condb0.log" for further details.

Oracle Database 12.2.0.1静默安装

一客户升级系统,准备把数据库升级到12C,操作系统切换到Redhat 7,而他们家系统管理员不但不熟Oracle数据库,还不熟Linux。只好请客户开了个Teamview连接,远程帮他们安装系统。因为连Linux都是供应商帮忙装了,没有装X window,只能选择静默安装了。开搞。

安装依赖包

要说安装包最方便的方式,莫过于利用Oracle官方的源了。

# cd /etc/yum.repos.d

# wget http://yum.oracle.com/public-yum-ol7.repo

#vim public-yum-ol7.repo

把文件按如下修改:

[ol7_latest]
name=Oracle Linux $releasever Latest ($basearch)
baseurl=https://yum.oracle.com/repo/OracleLinux/OL7/latest/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=0
enabled=1

然后运行oracle-database-server-12cR2-preinstall安装依赖包。

#yum install oracle-database-server-12cR2-preinstall

如果有问题可以采用以下方式。

#vim req-rpm.txt

在文件输入以下包名。

 

binutils
compat-libcap1
compat-libstdc++-33
gcc
gcc-c++
glibc
glibc-devel
ksh
libgcc
libstdc++
libstdc++-devel
libaio
libaio-devel
libXext
libXtst
libX11
libXau
libxcb
libXi
make
sysstat
libXmu
libXt
libXv
libXxf86dga
libdmx
libXxf86misc
libXxf86vm
xorg-x11-utils
xorg-x11-xauth

保存退出后,运行以下命令安装。

#yum install `awk ‘{print $1}’  req-rpm.txt`

配置系统参数

#vim /etc/sysctl.conf

增加以下内容:

–kernel parameters for 12C installation

fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500

使用内核参数生效

#/sbin/sysctl -p

#vim /etc/security/limits.conf

–shell limits for users oracle 12C

oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768

#cat /etc/selinux/config

确认SELINUX设置如下:

 

SELINUX=permissive

setenforce Permissive

#service iptables stop

#chkconfig iptables off

创建oracle用户和组

#groupadd -g 54321 oinstall

#groupadd -g 54322 dba

#groupadd -g 54323 oper

#useradd –u 54321 –g oinstall –G dba,oracle,oper

#passwd oracle

#mkdir –p /u01
#chown oracle:dba /u01
#chmod 775 /u01

安装数据库

#su oracle

#unzip linuxx64_12201_database.zip

在解压文件夹的/database/response目录下,复制db_install.rsp文件到/home/oracle/oinstall/oracle/database目录下。

#vim db_install.rsp

oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
ORACLE_HOME=/u01/app/oracle/product/12.2.0.1/dbhome_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=dba
oracle.install.db.OSBACKUPDBA_GROUP=dba
oracle.install.db.OSDGDBA_GROUP=dba
oracle.install.db.OSKMDBA_GROUP=dba
oracle.install.db.OSRACDBA_GROUP=dba
oracle.install.db.OSRACDBA_GROUP=dba
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true

#./runInstaller -silent -responseFile
/home/oracle/oinstall/database/db_install.rsp

完成数据库软件安装,切到root用户,运行以下脚本。

# /u01/app/oraInventory/orainstRoot.sh

#/u01/app/oracle/product/12.2.0.1/dbhome_1/root.sh

完成数据库软件安装。

静默创建数据库

类似上面步骤,复制dbca.rsp到当前目录。

#vim dbca.rsp

gdbName=orcl
sid=orcl
databaseConfigType=SI
createAsContainerDatabase=false
templateName=General_Purpose.dbc
sysPassword=oracle12C
systemPassword=oracle12C
emConfiguration=NONE
datafileDestination=/u01/oradata
recoveryAreaDestination=/u01/recovery_area
storageType=FS
characterSet=AL32UTF8
sampleSchema=TRUE

#export ORACLE_HOME=/u01/app/oracle/product/12.2.0.1/dbhome_1

#export PATH=$ORACLE_HOME/bin:$PATH.

#dbca -silent -createDatabase -responseFile dbca.rsp

完成数据库创建。

创建监听器

类似上面步骤,复制netca.rsp到当前目录。

#netca -silent  -responseFile netca.rsp

完成安装后,验证监听器状态正常。

#lsnrctl status

Ubuntu利用Aria2下载百度云文件

对于度娘百度云的鸡贼限速实在无话可说,对于合作伙伴把ISO文件放在度盘让俺去下载的丧心病狂行径更加是深恶痛绝。哥忍着病疼周末加班处理问题居然要花大量时间去等工具下载完成。叔可忍婶不可忍,只能想办法把东西下载回来。

开搞。

 

1.先安装Chrome百度网盘助手插件

在https://github.com/acgotaku/BaiduExporter下载BaiduExporter.crx,手动安装到Chrome。

 

 

2.安装Aria2

sudo apt-get install aria2

 

 

3.下载文件

打开度盘,选中你要下载的文件,选择导出下载菜单的文本导出。把显示的文件内容复制下来,然后在粘贴到命令框即可下载。

 

如果被度娘断开连接,可以重新输入命令实现断点续传。

Weblogic Server 12.1.2后查看补丁版本

好久没写东西,强迫自己水一个。最近有报道说黑客利用Weblogic Server的漏洞去挖矿,获得了至少611个门罗币(XMR),总价值达到了22.6万美元。第一反应是把自家的服务器打上补丁,打了patch后想看看有没有生效,才发现以前”java -weblogic.version”的方法不好使了。

放狗搜了一把,才知道从weblogic版本12.1.2.0.0后,因为使用opatch的方式统一管理补丁,所以查看PSU的方式也改变了。

依据Doc ID 1676652.1的方法如下:

cd $MW_HOME/OPatch
./opatch lsinventory

从Weblogic控制台可以看到当前的Weblogic版本:

Go to the Servers link
Customize this table
Check the WebLogic Version box and add it to the right side
Click Apply

Windows 10安装Netbeans 8.2出现错误msvcr100.dll+0x36adf解决办法

一直习惯用Sublime里写代码,最近为了调试几个JET程序,想装个Netbeans 8.2,结果运行安装程序时,却出现一个奇怪的错误。

问题描述


启动Netbeans安装程序,第一个窗口出来后就闪退,在安装程序目录下生成一个名字为“hs_err_pidxxxx.log”的文件,提示有致命错误。信息如下:



#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# If you would like to submit a bug report, please visit:
# http://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#


--------------- T H R E A D ---------------


Current thread (0x000000001921b800): JavaThread "Swing-Shell" daemon [_thread_in_native, id=6636, stack(0x000000001a1e0000,0x000000001a2e0000)]


siginfo: ExceptionCode=0xc0000005, reading address 0x0000000000000000


Registers:
RAX=0x0000000000000000, RBX=0x000000001a2df130, RCX=0x0000000000000000, RDX=0x0000000000cc8700
RSP=0x000000001a2df0d8, RBP=0x000000001a2df2c0, RSI=0x00000000000000e0, RDI=0x000000001921b9f8
R8 =0x0000000000cc8700, R9 =0x0000000000000000, R10=0x0000000000000000, R11=0x000000001a2dc2f0
R12=0x0000000000000000, R13=0x000000001a2df2e0, R14=0x000000001a2df2a8, R15=0x000000001921b800
RIP=0x0000000056926adf, EFLAGS=0x0000000000010246
......

然后安装程序自动退出。

解决方法


放狗搜了下,有人说是因为升级到最新版本的Win10所致。但经俺自己试验,其实系统上有God Folder导致,不管是God Folder是存在C盘还是桌面。把God Folder暂时挪至回收站,重新安装Netbeans,顺利完成。

WebCenter Content 12c灵异事件及O记的吐血Bug

把公司的内容管理系统全面迁移到Docker上重新部署,把备份的归档文件导入时发现报错没法导入,最后把自定义的元数据去掉后导入成功。但是原来利用文件类型的层级关系定义了很多子类型,都去掉的话很多查询的条件不能使用,积累的内容基本废了一半。

问题描述


尝试在WebCenter Content里更新内容元数据信息,但是每次更新都报Unable to update the content item information for ‘XXXX’. Unable to execute service method ‘validateCheckinData’. Null pointer is dereferenced.的错误。在Oracle Support上找原因,搜到的结果都不对。把自定义的表、视图、关系重建,把元数据删除重建,无数次的修改重启,就是不起作用。折腾了大半个月,差点发疯。

解决办法


今天下班没事又开始看,无意识的打开Oracle Support,以Unable to execute service method ‘validateCheckinData’为关键字搜索,没想到一下子跳出了Doc ID 2225215.1,说这是WebCenter Content 12c的一个bug,当用dDocType做为元数据层级关系的依据时,检入文件或更新时会报错。
按文档的指引下载了patch 23753742,打了补丁后在配置文件加上NoServerDependantFieldValidate=true,重启WebCenter Content服务,更新元数据,一切正常。
想起自己这个经历,心里只想骂他大爷的O记。

解决WordPress启用SSL后的管理页面ERR_TOO_MANY_REDIRECTS错误

问题描述


因为Google把http的网站标记为不安全网站的关系,决定把本站点改为SSL的https方式。
安装好证书,修改了站点的Site和URL配置,重启站点后发现前端页面可以正常访问,但是wp-admin页面却一直显示重定向过多的错误,

ERR_TOO_MANY_REDIRECTS

解决方法

放狗搜了一番,从清cookies到修改wp-config.php都试过,但是还是不能奏效。就这样拖了两个星期,今天稍微空下来,决定把这个问题彻底解决。

在wp-config.php文件下增加了以下几行。

define('FORCE_SSL_ADMIN',true);
// in some setups HTTP_X_FORWARDED_PROTO might contain
// a comma-separated list e.g. http,https
// so check for https existence
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)
$_SERVER['HTTPS']='on';

重启后,发现站点不再报重定向过多的错了,但是又报OAuth的错(因为俺是用Google的OAuth验证登录)。登上Google的API Manager Console,把站点链接地址指向从http改到https,问题解决。

解决WebCenter Content 12C错误“Content Id Is Not Unique”

1.问题描述

把WebCenter Content从11g升级到12c,用归档程序把原有的文件迁移到新版本,文件ID使用与原来相同的自动编号规则,当签入新文件时,系统总是报 “Content Server Request Failed Content item ‘TF_XXX’ was not successfully checked in. The content ID ‘TF_48509’ is not unique.”。

查看Content Server日志,错误信息如下:

An error has occurred. The stack trace below shows more information.

!csUserEventMessage,jeetqiu,139.159.32.66!$!csUnableToCheckIn,TF_007207!csCheckinIDNotUnique2,TF_007207
intradoc.common.ServiceException: !csUnableToCheckIn,TF_007207!csCheckinIDNotUnique2,TF_007207
*ScriptStack CHECKIN_NEW_SUB
3:doScriptableAction,dDocName=3:doSubService,dDocName=CHECKIN_NEW_SUB,dDocName=3:makeNewRevClass,dDocName=
at intradoc.server.ServiceRequestImplementor.buildServiceException(ServiceRequestImplementor.java:2259)…

2.解决方法

第一时间上Oracle Support找相关的答案,Doc ID 446390.1Doc ID 1320842.1都有相关的描述,不过都是修改counters表的RevClassID来达到目的。照着文章修改了RevClassID,但不知道是WebCenter Coneent 12C的机制更新还是什么原因,修改后并没有起作用。

后来无意中在一个链接看到Doc ID 1395583.1 How WebCenter Content 11g Uses Sequences to Uniquely Identify Content,从中知道IdcSeqRevClassID是管自动生成序号的,于是找到当前最大序号。
Select MAX(dDocName) from revisions
再修改IdcSeqRevClassID的起始值至最大序号+1,重新回到content系统,签入新文件,一切正常。

Ubuntu提示W: mdadm: /etc/mdadm/mdadm.conf defines no arrays解决办法

1.问题描述

Ubuntu 16.04 Server LTS升级内核时,每次都跑出来“W: mdadm: /etc/mdadm/mdadm.conf defines no arrays”的提示。明明没有用RAID,查了mdadm.conf也有没有任何相关的配置。虽然不影响使用,但是强迫症患者还是觉得很不爽。

2.解决办法

先删除mdadm.conf文件

# rm /etc/mdadm/mdadm.conf

再用update-initramfs命令,自动生成新的mdadm.conf文件。

# update-initramfs -u

天下太平。