Huaiyao Jin

Huaiyao Jin

M1 芯片 MacBook Pro 上搭建 Oracle 实验环境

由于公司笔记本的隐私问题前阵子购买了自用的 M1 Max 芯片的 MacBook Pro,64G 内存,心想着好好利用一下,装个虚拟机,然后运行 Oracle,结果很悲催。

先是尝试在 Parallels Desktop 上加载之前下载的 Linux iso 镜像文件,根本不能用。原来基于 Intel x86 架构的 Linux 不能装在基于 ARM 架构的 M1 芯片的笔记本上。

尝试下载最新的基于 ARM 架构的 Oracle Linux,https://download.oracle.com/otn-pub/otn_software/linux/OracleLinux-R9-U0-aarch64-dvd.iso ,安装没问题。装好以后抱有侥幸心理装一下 Oracle 12c,runInstaller 直接报错。

一顿谷歌,搜索了很多文章,总结一下有几种可行方案。

  1. 用 Parallel,VMware 或者 UTM 安装基于 ARM 的 Windows 11,然后在 Windows 11 里安装 Oracle。
    直接放弃,我要的是在 Linux 下的 Oracle db。
  2. 用 docker。 直接放弃,不想弄个黑盒子。
  3. 用 UTM 安装基于 x86 平台的 Linux,然后再装 Oracle。 这个看起来不错,开心去尝试。结果安装 Redhat Linux 就用了非常之久,性能问题太严重了。放弃。

以上探索过程花了几个小时,我已经基本上放弃在笔记本上安装 Oracle 实验环境的打算了。

于是只好转换思路,不在本地安装虚拟机,能 ssh 到远程的 db server 上也可以。

首先想到的是自己在 “搬瓦工” 上买的两个 VPS,平时只用来 “科学上网”,正好利用一下。找到原来的账号密码 ssh 上去一看,只有 1G 内存,放弃。

尝试注册 Oracle Cloud,有文章说它可以提供永久免费的主机。注册搞了半天,最后通不过,应该是信用卡的问题。放弃。

尝试 AWS,注册成功,看一下 4G 内存的云机器,不便宜,放弃。

又看了下阿里云,4G 内存的主机每个月也要六七十块钱,偶尔用一下,不是很划算,放弃。

最后,竟然在最后,才想到自己改造成家用服务器的 2013 年买的 MacBook Pro。只要在上面安装 VMware,然后直接加载以前保存的虚拟机文件就可以飞速得到一个 Oracle 实验环境。

剩下的问题就是如何访问 Home Server (旧 MacBook Pro) 上的虚拟机,特别是不在家的时候该如何访问。

基本思路就是先 ssh 到 Home Server,然后再 ssh 到虚拟机里的 Linux,这样就可以运行 sqlplus 了。

在家里、同一个网段下访问很方便。

ssh -t -l <username> 10.0.0.6 ssh -o StrictHostKeyChecking=no [email protected]

外网访问的话有两个问题要解决,一是如何访问家里局域网里的 Home Server,二是安全问题。

因为我有公网 IP,在路由器上简单做个端口映射就好。没有公网 IP 的话需要去研究一下内网穿透方案。

ssh -t -l <username> -p <port> <public ip or dns name> ssh -o StrictHostKeyChecking=no [email protected]

因为我的 IP 是暴露在公网上,所以安全问题尤为重要。

vi /etc/ssh/sshd_config

MaxAuthTries 6
MaxSessions 10
PubkeyAuthentication yes
PasswordAuthentication no
ChallengeResponseAuthentication no
PermitRootLogin no
PermitEmptyPasswords no

-- restart sshd
sudo launchctl stop com.openssh.sshd
sudo launchctl start com.openssh.sshd

在另外的机器上测试 ssh,会得到下面的报错。

➜  ~/.ssh > ssh -t -l <username> -p <port> <public ip or dns name>
xxx@xxxx: Permission denied (publickey).

– 先这样吧,不折腾了。

Oracle 解决问题