我在最初存储 F 文件的位置创建了一个 .deb 文件。然后我安装了这个deb文件,并且F文件正确地位于D目录下。然后我重建了 .deb 文件,从其构建中排除了 F 文件。现在我想安装这个新的 .deb 文件,禁止 apt 从 D 目录中删除已安装的 F 文件。是否可以?
主页
此进程在我的任务栏上显示为“ClipboardMonitor”。它似乎与远程桌面客户端有关,但这只是一个猜测。
我的问题是这个跟踪是什么以及输出去哪里?
这是该过程的命令行:
/opt/TSPrintClient/java/bin/java -classpath /opt/TSPrintClient/commons-codec-1.10.jar:/opt/TSPrintClient/commons-io-2.4.jar:/opt/TSPrintClient/sun.misc.BASE64Decoder.jar:/opt/TSPrintClient/TSPrintClient.jar MonitorClipboard
我正在使用 Ubuntu 22.04 LTS
我想使用 Python 将 .rtf 文件转换为 PDF。
我在stackoverflow上发现了这个:
import pypandoc
def convert_rtf_to_pdf(input_rtf, output_pdf):
pypandoc.convert_file(input_rtf, 'pdf', outputfile=output_pdf)
if __name__ == "__main__":
input_rtf_path = "Path to your RTF File"
output_pdf_path = "path to your pdf file output with name /output.pdf"
convert_rtf_to_pdf(input_rtf_path, output_pdf_path)
但我收到这个错误:
运行时错误:输入格式无效!得到“rtf”,但期望其中之一:commonmark、creole、csv、docbook、docx、dokuwiki、epub、fb2、gfm、haddock、html、ipynb、jats、jira、json、latex、man、markdown、markdown_github、markdown_mmd、 markdown_phpextra、markdown_strict、mediawiki、muse、本机、odt、opml、org、rst、t2t、纺织品、tikiwiki、twiki、vimwiki
我可以以某种方式将 .rtf 文件添加到 Ubuntu pandoc,然后将它们转换为 PDF 吗?
进一步查看,我发现了这个,这表明 rtf 可用:
print(pypandoc.get_pandoc_formats())
(['commonmark', 'creole', 'csv', 'docbook', 'docx', 'dokuwiki', 'epub', 'fb2', 'gfm', 'haddock', 'html', 'ipynb', 'jats'、'jira'、'json'、'latex'、'man'、'markdown'、'markdown_github'、'markdown_mmd'、'markdown_phpextra'、'markdown_strict'、'mediawiki'、'muse'、'native ', 'odt', 'opml', 'org', 'rst', 't2t', '纺织', 'tikiwiki', 'twiki', 'vimwiki'], ['asciidoc', 'asciidoctor', 'beamer ', 'commonmark', 'context', 'docbook', 'docbook4', 'docbook5', 'docx', 'dokuwiki', 'dzslides', 'epub','epub2'、'epub3'、'fb2'、'gfm'、'haddock'、'html'、'html4'、'html5'、'icml'、'ipynb'、'jats'、'jats_archiving'、'jats_articleauthoring ', 'jats_publishing', 'jira', 'json', 'latex', 'man', 'markdown', 'markdown_github', 'markdown_mmd', 'markdown_phpextra', 'markdown_strict', 'mediawiki', 'ms', 'muse'、'native'、'odt'、'opendocument'、'opml'、'org'、'pdf'、'plain'、'pptx'、'revealjs'、'rst'、'rtf'、's5 '、'slideous'、'slidy'、'tei'、'texinfo'、'textile'、'xwiki'、'zimwiki'])'epub3'、'fb2'、'gfm'、'haddock'、'html'、'html4'、'html5'、'icml'、'ipynb'、'jats'、'jats_archiving'、'jats_articleauthoring'、'jats_publishing ', 'jira', 'json', 'latex', 'man', 'markdown', 'markdown_github', 'markdown_mmd', 'markdown_phpextra', 'markdown_strict', 'mediawiki', 'ms', 'muse', 'native'、'odt'、'opendocument'、'opml'、'org'、'pdf'、'plain'、'pptx'、'revealjs'、'rst'、'rtf'、's5'、'slideous '、'slidy'、'tei'、'texinfo'、'纺织'、'xwiki'、'zimwiki'])'epub3'、'fb2'、'gfm'、'haddock'、'html'、'html4'、'html5'、'icml'、'ipynb'、'jats'、'jats_archiving'、'jats_articleauthoring'、'jats_publishing ', 'jira', 'json', 'latex', 'man', 'markdown', 'markdown_github', 'markdown_mmd', 'markdown_phpextra', 'markdown_strict', 'mediawiki', 'ms', 'muse', 'native'、'odt'、'opendocument'、'opml'、'org'、'pdf'、'plain'、'pptx'、'revealjs'、'rst'、'rtf'、's5'、'slideous '、'slidy'、'tei'、'texinfo'、'纺织'、'xwiki'、'zimwiki'])'haddock'、'html'、'html4'、'html5'、'icml'、'ipynb'、'jats'、'jats_archiving'、'jats_articleauthoring'、'jats_publishing'、'jira'、'json'、'latex ', 'man', 'markdown', 'markdown_github', 'markdown_mmd', 'markdown_phpextra', 'markdown_strict', 'mediawiki', 'ms', 'muse', 'native', 'odt', 'opendocument', 'opml'、'org'、'pdf'、'普通'、'pptx'、'revealjs'、'rst'、'rtf'、's5'、'slideous'、'slidy'、'tei'、'texinfo '、'纺织'、'xwiki'、'zimwiki'])'haddock'、'html'、'html4'、'html5'、'icml'、'ipynb'、'jats'、'jats_archiving'、'jats_articleauthoring'、'jats_publishing'、'jira'、'json'、'latex ', 'man', 'markdown', 'markdown_github', 'markdown_mmd', 'markdown_phpextra', 'markdown_strict', 'mediawiki', 'ms', 'muse', 'native', 'odt', 'opendocument', 'opml'、'org'、'pdf'、'普通'、'pptx'、'revealjs'、'rst'、'rtf'、's5'、'slideous'、'slidy'、'tei'、'texinfo '、'纺织'、'xwiki'、'zimwiki'])'ipynb'、'jats'、'jats_archiving'、'jats_articleauthoring'、'jats_publishing'、'jira'、'json'、'latex'、'man'、'markdown'、'markdown_github'、'markdown_mmd'、'markdown_phpextra ', 'markdown_strict', 'mediawiki', 'ms', 'muse', 'native', 'odt', 'opendocument', 'opml', 'org', 'pdf', 'plain', 'pptx', 'revealjs'、'rst'、'rtf'、's5'、'slideous'、'slidy'、'tei'、'texinfo'、'textile'、'xwiki'、'zimwiki'])'ipynb'、'jats'、'jats_archiving'、'jats_articleauthoring'、'jats_publishing'、'jira'、'json'、'latex'、'man'、'markdown'、'markdown_github'、'markdown_mmd'、'markdown_phpextra ', 'markdown_strict', 'mediawiki', 'ms', 'muse', 'native', 'odt', 'opendocument', 'opml', 'org', 'pdf', 'plain', 'pptx', 'revealjs'、'rst'、'rtf'、's5'、'slideous'、'slidy'、'tei'、'texinfo'、'textile'、'xwiki'、'zimwiki'])'man'、'markdown'、'markdown_github'、'markdown_mmd'、'markdown_phpextra'、'markdown_strict'、'mediawiki'、'ms'、'muse'、'native'、'odt'、'opendocument'、'opml ', 'org', 'pdf', 'plain', 'pptx', 'revealjs', 'rst', 'rtf', 's5', 'slideous', 'slidy', 'tei', 'texinfo', '纺织'、'xwiki'、'zimwiki'])'man'、'markdown'、'markdown_github'、'markdown_mmd'、'markdown_phpextra'、'markdown_strict'、'mediawiki'、'ms'、'muse'、'native'、'odt'、'opendocument'、'opml ', 'org', 'pdf', 'plain', 'pptx', 'revealjs', 'rst', 'rtf', 's5', 'slideous', 'slidy', 'tei', 'texinfo', '纺织'、'xwiki'、'zimwiki'])'revealjs'、'rst'、'rtf'、's5'、'slideous'、'slidy'、'tei'、'texinfo'、'textile'、'xwiki'、'zimwiki'])'revealjs'、'rst'、'rtf'、's5'、'slideous'、'slidy'、'tei'、'texinfo'、'textile'、'xwiki'、'zimwiki'])
在我的(家庭)Ubuntu 22.04.4 LTS 机器上,我有无限的 sudo:
$ sudo -l
User <me> may run the following commands on <me>-home:
(ALL : ALL) ALL
但是,我在文件中没有看到我的用户 ID ,并且除了其中没有我的用户 ID 的文件之外/etc/sudoers
,没有其他文件。/etc/sudoers.d
README
Ubuntu 在哪里存储我拥有 sudo 的信息?
我正在尝试运行包含字符串变量中的字符串变量的命令:
$ X="bash -c 'echo OK'" ; $X
OK': -c: line 1: unexpected EOF while looking for matching `''
为什么不起作用?如何正确修复/做它?
请注意,我需要将命令运行为$X
.
请注意,我需要echo OK
通过运行bash -c
。
这个问题是帖子的延续Modify Windows CommandLine Start Up Text
当我成功地从它的起源修改它之后cmd startup display
,它看起来像这样:
CMD:
blank line
上面还是有一个。
那么,我该如何删除它?,就变成了:
CMD:
就像我修改的PowerShell Startup
下面这样:
PS7:
顶部没有空行。
当然,该命令CLS
仅清除显示的文本,而不是行。
更新:
我尝试按键盘按键,然后打开了CTRL + L
我的电脑。也许在其他电脑上有所不同。
但这只是暂时的。仍在寻找永久设置
我想替换文本Powershell Startup
和CMD StartUp
下面的内容
# PowerShell
PS C:\Users\Admin>
# CMD
C:\Users\Admin>
和
PS >
CMD >
就像Python Start Up
这样只显示
>>>
这可能吗?
在应用层,有HTTP 2和3。在L4,有QUIC。在较低层有各种有线和无线标准。
L3呢?从 IPv4 过渡到 IPv6 的速度是否有任何改进?或者这一层根本没有提供任何速度提升?
我有一个 PHP 脚本,每当我们开始一个新项目时,它都会动态创建团队。
在测试阶段,创建了数百个“测试”团队,我正在尝试找到一种永久删除所有这些团队的方法。
有没有一种简单的方法可以做到这一点,或者有什么方法可以删除这些类似于在资源管理器中删除文件夹的方法?
我尝试遵循以下手动示例man systemd.network
:
# /etc/systemd/network/27-xfrm.netdev
[NetDev]
Name=xfrm0
Kind=xfrm
[Xfrm]
InterfaceId=7
# /etc/systemd/network/27-eth0.network
[Match]
Name=ens5
[Network]
Xfrm=xfrm0
然后systemctl daemon-reload
+ systemctl restart systemd-networkd
。没事了。其中systemctl status systemd-networkd
也没有显示任何对以下内容的引用xfrm
:
Apr 16 23:52:07 ip-10-100-1-205 systemd[1]: Starting Network Configuration...
Apr 16 23:52:07 ip-10-100-1-205 systemd-networkd[960]: ens5: Link UP
Apr 16 23:52:07 ip-10-100-1-205 systemd-networkd[960]: ens5: Gained carrier
Apr 16 23:52:07 ip-10-100-1-205 systemd-networkd[960]: lo: Link UP
Apr 16 23:52:07 ip-10-100-1-205 systemd-networkd[960]: lo: Gained carrier
Apr 16 23:52:07 ip-10-100-1-205 systemd-networkd[960]: ens5: Gained IPv6LL
Apr 16 23:52:07 ip-10-100-1-205 systemd-networkd[960]: Enumeration completed
Apr 16 23:52:07 ip-10-100-1-205 systemd[1]: Started Network Configuration.
Apr 16 23:52:07 ip-10-100-1-205 systemd-networkd[960]: ens5: DHCPv4 address 10.100.1.205/24 via 10.100.1.1
它是 aws 上的 ubuntu 22.04,带有 systemd v249。
我还尝试添加另一个.network
模块:
[Match]
Name=xfrm*
[Link]
ActivationPolicy=up
RequiredForOnline=no
没有成功。
我缺少什么?
更新:
# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc mq state UP group default qlen 1000
link/ether 06:ea:6f:cf:a8:51 brd ff:ff:ff:ff:ff:ff
inet 10.100.1.205/24 metric 100 brd 10.100.1.255 scope global dynamic ens5
valid_lft 2529sec preferred_lft 2529sec
inet6 fe80::4ea:6fff:fecf:a851/64 scope link
valid_lft forever preferred_lft forever
(我手动添加了xfrm接口,因此ens5
MTU已降至1500,否则它是同一台机器)
# networkctl status ens5
● 2: ens5
Link File: /usr/lib/systemd/network/99-default.link
Network File: /run/systemd/network/10-netplan-ens5.network
Type: ether
State: routable (configured)
Online state: online
Alternative Names: enp0s5
Path: pci-0000:00:05.0
Driver: ena
Vendor: Amazon.com, Inc.
Model: Elastic Network Adapter (ENA)
HW Address: 06:ea:6f:cf:a8:51
MTU: 1500 (min: 128, max: 9216)
QDisc: mq
IPv6 Address Generation Mode: eui64
Queue Length (Tx/Rx): 2/2
Address: 10.100.1.100
10.100.1.205
fe80::4ea:6fff:fecf:a851
Gateway: 10.100.1.1
Activation Policy: up
Required For Online: yes
DHCP6 Client DUID: DUID-EN/Vendor:0000ab11874fdc08796f22200000
Apr 17 02:55:13 ip-10-100-1-205 systemd-networkd[322]: ens5: Link UP
Apr 17 02:55:13 ip-10-100-1-205 systemd-networkd[322]: ens5: Gained carrier
Apr 17 02:55:13 ip-10-100-1-205 systemd-networkd[322]: ens5: Link DOWN
Apr 17 02:55:13 ip-10-100-1-205 systemd-networkd[322]: ens5: Lost carrier
Apr 17 02:55:13 ip-10-100-1-205 systemd-networkd[322]: ens5: Link UP
Apr 17 02:55:14 ip-10-100-1-205 systemd-networkd[322]: ens5: Gained carrier
Apr 17 02:55:15 ip-10-100-1-205 systemd-networkd[322]: ens5: Gained IPv6LL
以前它是在ipsec statusall
.
现在swanctl
我只能看到swanctl --list-conns
,但它只显示配置详细信息,而不显示运行时统计信息:例如传输的字节数、协商的密码套件、重新验证/重新生成密钥统计信息等等。
那么,“新”strongswan配置中是否有类似的命令呢?
我有一台包含 1 TB 空间的服务器。我把它装满了;然后我想做一个符号链接。我删除了一个不同的符号链接,但服务器仍然不满意 - 它说我没有任何可用空间。我不是通过删除最后一个符号链接来清理足够的空间吗?
文件系统需要多少空间才能识别有足够的空间来创建符号链接?
我按照Cerbot 的说明 在我的 Debian 服务器中为域获取 NGINX 的 HTTPS 证书,但 HTTPS 未正确重定向。
etc/nginx/conf.d/app.conf
我从 Certbot 的自动生成中得到以下内容:
server {
server_name mnpd.khkm.dev www.mnpd.khkm.dev;
# listen 8080;
server_tokens off;
location /.well-known/acme-challenge/ {
root /var/www/certbot;
}
location / {
# return 301 https://mnpd.khkm.dev$request_uri;
proxy_pass http://mnpd.khkm.dev;
}
listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/mnpd.khkm.dev/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/mnpd.khkm.dev/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = mnpd.khkm.dev) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
listen [::]:80;
server_name mnpd.khkm.dev www.mnpd.khkm.dev;
return 404; # managed by Certbot
}
在 Chrome 中,当我访问https://mnpd.khkm.dev/时,我得到:
mnpd.khkm.dev redirected you too many times.
Try deleting your cookies.
ERR_TOO_MANY_REDIRECTS
我找到了这个Stack Overflow 答案
,我查看了 Web 控制台中的“网络”选项卡,发现该页面不断被重定向到https://mnpd.khkm.dev/
. NGINX 配置应该侦听 HTTPS 端口 443,那么为什么它不加载并不断重定向呢?(我希望加载默认的 NGINX 页面。)
$ lsb_release -a
No LSB modules are available.
Distributor ID: Pop
Description: Pop!_OS 22.04 LTS
Release: 22.04
Codename: jammy
直到周日我才能连接到互联网。周一我无法连接到互联网。我的电脑上没有任何变化。我唯一做的就是sudo apt-get update
但它没有下载太多。据我记得,它只下载了几kb的数据。
家里所有的手机都可以通过 WiFi 连接到互联网,除了我的笔记本电脑。当我选择 WiFi 时,起初它看起来已连接,但随后 WiFi 图标上出现一个问号(?)。此外,当我与笔记本电脑共享移动互联网时,一切正常。
最奇怪的是我在另一个房子里也能连接到互联网。
$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp47s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000
link/ether d8:bb:c1:b1:1d:c1 brd ff:ff:ff:ff:ff:ff
3: wlo1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000
link/ether c4:bd:e5:23:9c:9a brd ff:ff:ff:ff:ff:ff
altname wlp0s20f3
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default
link/ether 02:42:aa:aa:8b:28 brd ff:ff:ff:ff:ff:ff
5: br-a593dce43362: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default
link/ether 02:42:84:e4:1e:5d brd ff:ff:ff:ff:ff:ff
6: br-c77e5c8b1ce6: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default
link/ether 02:42:dd:ac:10:97 brd ff:ff:ff:ff:ff:ff
7: br-c8d5ce7ce6c1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default
link/ether 02:42:23:b0:8b:d6 brd ff:ff:ff:ff:ff:ff
8: br-f2e659a6d01a: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default
link/ether 02:42:42:33:b3:08 brd ff:ff:ff:ff:ff:ff
9: br-fd59d8ed402b: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default
link/ether 02:42:0a:00:a2:96 brd ff:ff:ff:ff:ff:ff
10: br-35b3c8def3c9: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default
link/ether 02:42:be:6f:12:8f brd ff:ff:ff:ff:ff:ff
11: br-3a165a5c993a: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default
link/ether 02:42:eb:5e:ba:28 brd ff:ff:ff:ff:ff:ff
12: br-4d363be4b599: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default
link/ether 02:42:32:57:dd:21 brd ff:ff:ff:ff:ff:ff
13: br-4e168a0cdf31: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default
link/ether 02:42:81:00:13:f0 brd ff:ff:ff:ff:ff:ff
14: br-9346c9dd9a25: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default
link/ether 02:42:43:b1:ee:3b brd ff:ff:ff:ff:ff:ff
15: br-a28feae6b83c: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default
link/ether 02:42:5d:ba:38:c8 brd ff:ff:ff:ff:ff:ff
16: br-1db02a26bdd0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default
link/ether 02:42:e4:ff:fe:a0 brd ff:ff:ff:ff:ff:ff
17: br-4ca8610e3d72: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default
link/ether 02:42:c7:ee:50:8c brd ff:ff:ff:ff:ff:ff
18: br-604867f1852d: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default
link/ether 02:42:db:85:46:ce brd ff:ff:ff:ff:ff:ff
19: br-8166f1f24274: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default
link/ether 02:42:90:63:2e:3f brd ff:ff:ff:ff:ff:ff
20: br-3864e73fa63c: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default
link/ether 02:42:fa:fe:ab:c1 brd ff:ff:ff:ff:ff:ff
21: br-46e81cf5fb5e: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default
link/ether 02:42:2e:dd:b3:a5 brd ff:ff:ff:ff:ff:ff
22: br-dafd9fc1c73f: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default
link/ether 02:42:d8:d7:e3:9d brd ff:ff:ff:ff:ff:ff
$ ip -br addr
lo UNKNOWN 127.0.0.1/8 ::1/128
enp47s0 DOWN
wlo1 UP 192.168.0.13/24 fe80::7820:93db:b655:d21f/64
docker0 DOWN 172.17.0.1/16
br-a593dce43362 DOWN 172.18.0.1/16
br-c77e5c8b1ce6 DOWN 192.168.16.1/20
br-c8d5ce7ce6c1 DOWN 172.29.0.1/16
br-f2e659a6d01a DOWN 172.20.0.1/16
br-fd59d8ed402b DOWN 172.28.0.1/16
br-35b3c8def3c9 DOWN 172.30.0.1/16
br-3a165a5c993a DOWN 172.25.0.1/16
br-4d363be4b599 DOWN 172.19.0.1/16
br-4e168a0cdf31 DOWN 172.27.0.1/16
br-9346c9dd9a25 DOWN 172.26.0.1/16
br-a28feae6b83c DOWN 172.21.0.1/16
br-1db02a26bdd0 DOWN 172.31.0.1/16
br-4ca8610e3d72 DOWN 192.168.0.1/20
br-604867f1852d DOWN 172.22.0.1/16
br-8166f1f24274 DOWN 172.24.0.1/16
br-3864e73fa63c DOWN 192.168.49.1/24
br-46e81cf5fb5e DOWN 192.168.240.1/20
br-dafd9fc1c73f DOWN 172.23.0.1/16
$ ip route
default via 192.168.0.1 dev wlo1 proto dhcp metric 600
169.254.0.0/16 dev wlo1 scope link metric 1000
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
172.18.0.0/16 dev br-a593dce43362 proto kernel scope link src 172.18.0.1 linkdown
172.19.0.0/16 dev br-4d363be4b599 proto kernel scope link src 172.19.0.1 linkdown
172.20.0.0/16 dev br-f2e659a6d01a proto kernel scope link src 172.20.0.1 linkdown
172.21.0.0/16 dev br-a28feae6b83c proto kernel scope link src 172.21.0.1 linkdown
172.22.0.0/16 dev br-604867f1852d proto kernel scope link src 172.22.0.1 linkdown
172.23.0.0/16 dev br-dafd9fc1c73f proto kernel scope link src 172.23.0.1 linkdown
172.24.0.0/16 dev br-8166f1f24274 proto kernel scope link src 172.24.0.1 linkdown
172.25.0.0/16 dev br-3a165a5c993a proto kernel scope link src 172.25.0.1 linkdown
172.26.0.0/16 dev br-9346c9dd9a25 proto kernel scope link src 172.26.0.1 linkdown
172.27.0.0/16 dev br-4e168a0cdf31 proto kernel scope link src 172.27.0.1 linkdown
172.28.0.0/16 dev br-fd59d8ed402b proto kernel scope link src 172.28.0.1 linkdown
172.29.0.0/16 dev br-c8d5ce7ce6c1 proto kernel scope link src 172.29.0.1 linkdown
172.30.0.0/16 dev br-35b3c8def3c9 proto kernel scope link src 172.30.0.1 linkdown
172.31.0.0/16 dev br-1db02a26bdd0 proto kernel scope link src 172.31.0.1 linkdown
192.168.0.0/24 dev wlo1 proto kernel scope link src 192.168.0.13 metric 600
192.168.0.0/20 dev br-4ca8610e3d72 proto kernel scope link src 192.168.0.1 linkdown
192.168.16.0/20 dev br-c77e5c8b1ce6 proto kernel scope link src 192.168.16.1 linkdown
192.168.49.0/24 dev br-3864e73fa63c proto kernel scope link src 192.168.49.1 linkdown
192.168.240.0/20 dev br-46e81cf5fb5e proto kernel scope link src 192.168.240.1 linkdown
$ ip neigh
192.168.0.11 dev wlo1 lladdr 42:3f:8c:00:d9:f7 STALE
192.168.0.1 dev wlo1 lladdr e4:26:86:aa:d8:44 REACHABLE
$ sudo iptables-save -c
# Generated by iptables-save v1.8.7 on Tue Apr 16 20:35:55 2024
*filter
:INPUT ACCEPT [0:0]
:FORWARD DROP [3:673]
:OUTPUT ACCEPT [0:0]
:DOCKER - [0:0]
:DOCKER-ISOLATION-STAGE-1 - [0:0]
:DOCKER-ISOLATION-STAGE-2 - [0:0]
:DOCKER-USER - [0:0]
[3:673] -A FORWARD -j DOCKER-USER
[3:673] -A FORWARD -j DOCKER-ISOLATION-STAGE-1
[0:0] -A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
[0:0] -A FORWARD -o docker0 -j DOCKER
[0:0] -A FORWARD -i docker0 ! -o docker0 -j ACCEPT
[0:0] -A FORWARD -i docker0 -o docker0 -j ACCEPT
[0:0] -A FORWARD -o br-dafd9fc1c73f -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
[0:0] -A FORWARD -o br-dafd9fc1c73f -j DOCKER
[0:0] -A FORWARD -i br-dafd9fc1c73f ! -o br-dafd9fc1c73f -j ACCEPT
[0:0] -A FORWARD -i br-dafd9fc1c73f -o br-dafd9fc1c73f -j ACCEPT
[0:0] -A FORWARD -o br-46e81cf5fb5e -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
[0:0] -A FORWARD -o br-46e81cf5fb5e -j DOCKER
[0:0] -A FORWARD -i br-46e81cf5fb5e ! -o br-46e81cf5fb5e -j ACCEPT
[0:0] -A FORWARD -i br-46e81cf5fb5e -o br-46e81cf5fb5e -j ACCEPT
[0:0] -A FORWARD -o br-3864e73fa63c -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
[0:0] -A FORWARD -o br-3864e73fa63c -j DOCKER
[0:0] -A FORWARD -i br-3864e73fa63c ! -o br-3864e73fa63c -j ACCEPT
[0:0] -A FORWARD -i br-3864e73fa63c -o br-3864e73fa63c -j ACCEPT
[0:0] -A FORWARD -o br-8166f1f24274 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
[0:0] -A FORWARD -o br-8166f1f24274 -j DOCKER
[0:0] -A FORWARD -i br-8166f1f24274 ! -o br-8166f1f24274 -j ACCEPT
[0:0] -A FORWARD -i br-8166f1f24274 -o br-8166f1f24274 -j ACCEPT
[0:0] -A FORWARD -o br-604867f1852d -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
[0:0] -A FORWARD -o br-604867f1852d -j DOCKER
[0:0] -A FORWARD -i br-604867f1852d ! -o br-604867f1852d -j ACCEPT
[0:0] -A FORWARD -i br-604867f1852d -o br-604867f1852d -j ACCEPT
[0:0] -A FORWARD -o br-4ca8610e3d72 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
[0:0] -A FORWARD -o br-4ca8610e3d72 -j DOCKER
[0:0] -A FORWARD -i br-4ca8610e3d72 ! -o br-4ca8610e3d72 -j ACCEPT
[0:0] -A FORWARD -i br-4ca8610e3d72 -o br-4ca8610e3d72 -j ACCEPT
[0:0] -A FORWARD -o br-1db02a26bdd0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
[0:0] -A FORWARD -o br-1db02a26bdd0 -j DOCKER
[0:0] -A FORWARD -i br-1db02a26bdd0 ! -o br-1db02a26bdd0 -j ACCEPT
[0:0] -A FORWARD -i br-1db02a26bdd0 -o br-1db02a26bdd0 -j ACCEPT
[0:0] -A FORWARD -o br-a28feae6b83c -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
[0:0] -A FORWARD -o br-a28feae6b83c -j DOCKER
[0:0] -A FORWARD -i br-a28feae6b83c ! -o br-a28feae6b83c -j ACCEPT
[0:0] -A FORWARD -i br-a28feae6b83c -o br-a28feae6b83c -j ACCEPT
[0:0] -A FORWARD -o br-9346c9dd9a25 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
[0:0] -A FORWARD -o br-9346c9dd9a25 -j DOCKER
[0:0] -A FORWARD -i br-9346c9dd9a25 ! -o br-9346c9dd9a25 -j ACCEPT
[0:0] -A FORWARD -i br-9346c9dd9a25 -o br-9346c9dd9a25 -j ACCEPT
[0:0] -A FORWARD -o br-4e168a0cdf31 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
[0:0] -A FORWARD -o br-4e168a0cdf31 -j DOCKER
[0:0] -A FORWARD -i br-4e168a0cdf31 ! -o br-4e168a0cdf31 -j ACCEPT
[0:0] -A FORWARD -i br-4e168a0cdf31 -o br-4e168a0cdf31 -j ACCEPT
[0:0] -A FORWARD -o br-4d363be4b599 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
[0:0] -A FORWARD -o br-4d363be4b599 -j DOCKER
[0:0] -A FORWARD -i br-4d363be4b599 ! -o br-4d363be4b599 -j ACCEPT
[0:0] -A FORWARD -i br-4d363be4b599 -o br-4d363be4b599 -j ACCEPT
[0:0] -A FORWARD -o br-3a165a5c993a -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
[0:0] -A FORWARD -o br-3a165a5c993a -j DOCKER
[0:0] -A FORWARD -i br-3a165a5c993a ! -o br-3a165a5c993a -j ACCEPT
[0:0] -A FORWARD -i br-3a165a5c993a -o br-3a165a5c993a -j ACCEPT
[0:0] -A FORWARD -o br-35b3c8def3c9 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
[0:0] -A FORWARD -o br-35b3c8def3c9 -j DOCKER
[0:0] -A FORWARD -i br-35b3c8def3c9 ! -o br-35b3c8def3c9 -j ACCEPT
[0:0] -A FORWARD -i br-35b3c8def3c9 -o br-35b3c8def3c9 -j ACCEPT
[0:0] -A FORWARD -o br-fd59d8ed402b -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
[0:0] -A FORWARD -o br-fd59d8ed402b -j DOCKER
[0:0] -A FORWARD -i br-fd59d8ed402b ! -o br-fd59d8ed402b -j ACCEPT
[0:0] -A FORWARD -i br-fd59d8ed402b -o br-fd59d8ed402b -j ACCEPT
[0:0] -A FORWARD -o br-f2e659a6d01a -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
[0:0] -A FORWARD -o br-f2e659a6d01a -j DOCKER
[0:0] -A FORWARD -i br-f2e659a6d01a ! -o br-f2e659a6d01a -j ACCEPT
[0:0] -A FORWARD -i br-f2e659a6d01a -o br-f2e659a6d01a -j ACCEPT
[0:0] -A FORWARD -o br-c8d5ce7ce6c1 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
[0:0] -A FORWARD -o br-c8d5ce7ce6c1 -j DOCKER
[0:0] -A FORWARD -i br-c8d5ce7ce6c1 ! -o br-c8d5ce7ce6c1 -j ACCEPT
[0:0] -A FORWARD -i br-c8d5ce7ce6c1 -o br-c8d5ce7ce6c1 -j ACCEPT
[0:0] -A FORWARD -o br-c77e5c8b1ce6 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
[0:0] -A FORWARD -o br-c77e5c8b1ce6 -j DOCKER
[0:0] -A FORWARD -i br-c77e5c8b1ce6 ! -o br-c77e5c8b1ce6 -j ACCEPT
[0:0] -A FORWARD -i br-c77e5c8b1ce6 -o br-c77e5c8b1ce6 -j ACCEPT
[0:0] -A FORWARD -o br-a593dce43362 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
[0:0] -A FORWARD -o br-a593dce43362 -j DOCKER
[0:0] -A FORWARD -i br-a593dce43362 ! -o br-a593dce43362 -j ACCEPT
[0:0] -A FORWARD -i br-a593dce43362 -o br-a593dce43362 -j ACCEPT
[0:0] -A DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2
[0:0] -A DOCKER-ISOLATION-STAGE-1 -i br-dafd9fc1c73f ! -o br-dafd9fc1c73f -j DOCKER-ISOLATION-STAGE-2
[0:0] -A DOCKER-ISOLATION-STAGE-1 -i br-46e81cf5fb5e ! -o br-46e81cf5fb5e -j DOCKER-ISOLATION-STAGE-2
[0:0] -A DOCKER-ISOLATION-STAGE-1 -i br-3864e73fa63c ! -o br-3864e73fa63c -j DOCKER-ISOLATION-STAGE-2
[0:0] -A DOCKER-ISOLATION-STAGE-1 -i br-8166f1f24274 ! -o br-8166f1f24274 -j DOCKER-ISOLATION-STAGE-2
[0:0] -A DOCKER-ISOLATION-STAGE-1 -i br-604867f1852d ! -o br-604867f1852d -j DOCKER-ISOLATION-STAGE-2
[0:0] -A DOCKER-ISOLATION-STAGE-1 -i br-4ca8610e3d72 ! -o br-4ca8610e3d72 -j DOCKER-ISOLATION-STAGE-2
[0:0] -A DOCKER-ISOLATION-STAGE-1 -i br-1db02a26bdd0 ! -o br-1db02a26bdd0 -j DOCKER-ISOLATION-STAGE-2
[0:0] -A DOCKER-ISOLATION-STAGE-1 -i br-a28feae6b83c ! -o br-a28feae6b83c -j DOCKER-ISOLATION-STAGE-2
[0:0] -A DOCKER-ISOLATION-STAGE-1 -i br-9346c9dd9a25 ! -o br-9346c9dd9a25 -j DOCKER-ISOLATION-STAGE-2
[0:0] -A DOCKER-ISOLATION-STAGE-1 -i br-4e168a0cdf31 ! -o br-4e168a0cdf31 -j DOCKER-ISOLATION-STAGE-2
[0:0] -A DOCKER-ISOLATION-STAGE-1 -i br-4d363be4b599 ! -o br-4d363be4b599 -j DOCKER-ISOLATION-STAGE-2
[0:0] -A DOCKER-ISOLATION-STAGE-1 -i br-3a165a5c993a ! -o br-3a165a5c993a -j DOCKER-ISOLATION-STAGE-2
[0:0] -A DOCKER-ISOLATION-STAGE-1 -i br-35b3c8def3c9 ! -o br-35b3c8def3c9 -j DOCKER-ISOLATION-STAGE-2
[0:0] -A DOCKER-ISOLATION-STAGE-1 -i br-fd59d8ed402b ! -o br-fd59d8ed402b -j DOCKER-ISOLATION-STAGE-2
[0:0] -A DOCKER-ISOLATION-STAGE-1 -i br-f2e659a6d01a ! -o br-f2e659a6d01a -j DOCKER-ISOLATION-STAGE-2
[0:0] -A DOCKER-ISOLATION-STAGE-1 -i br-c8d5ce7ce6c1 ! -o br-c8d5ce7ce6c1 -j DOCKER-ISOLATION-STAGE-2
[0:0] -A DOCKER-ISOLATION-STAGE-1 -i br-c77e5c8b1ce6 ! -o br-c77e5c8b1ce6 -j DOCKER-ISOLATION-STAGE-2
[0:0] -A DOCKER-ISOLATION-STAGE-1 -i br-a593dce43362 ! -o br-a593dce43362 -j DOCKER-ISOLATION-STAGE-2
[3:673] -A DOCKER-ISOLATION-STAGE-1 -j RETURN
[0:0] -A DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP
[0:0] -A DOCKER-ISOLATION-STAGE-2 -o br-dafd9fc1c73f -j DROP
[0:0] -A DOCKER-ISOLATION-STAGE-2 -o br-46e81cf5fb5e -j DROP
[0:0] -A DOCKER-ISOLATION-STAGE-2 -o br-3864e73fa63c -j DROP
[0:0] -A DOCKER-ISOLATION-STAGE-2 -o br-8166f1f24274 -j DROP
[0:0] -A DOCKER-ISOLATION-STAGE-2 -o br-604867f1852d -j DROP
[0:0] -A DOCKER-ISOLATION-STAGE-2 -o br-4ca8610e3d72 -j DROP
[0:0] -A DOCKER-ISOLATION-STAGE-2 -o br-1db02a26bdd0 -j DROP
[0:0] -A DOCKER-ISOLATION-STAGE-2 -o br-a28feae6b83c -j DROP
[0:0] -A DOCKER-ISOLATION-STAGE-2 -o br-9346c9dd9a25 -j DROP
[0:0] -A DOCKER-ISOLATION-STAGE-2 -o br-4e168a0cdf31 -j DROP
[0:0] -A DOCKER-ISOLATION-STAGE-2 -o br-4d363be4b599 -j DROP
[0:0] -A DOCKER-ISOLATION-STAGE-2 -o br-3a165a5c993a -j DROP
[0:0] -A DOCKER-ISOLATION-STAGE-2 -o br-35b3c8def3c9 -j DROP
[0:0] -A DOCKER-ISOLATION-STAGE-2 -o br-fd59d8ed402b -j DROP
[0:0] -A DOCKER-ISOLATION-STAGE-2 -o br-f2e659a6d01a -j DROP
[0:0] -A DOCKER-ISOLATION-STAGE-2 -o br-c8d5ce7ce6c1 -j DROP
[0:0] -A DOCKER-ISOLATION-STAGE-2 -o br-c77e5c8b1ce6 -j DROP
[0:0] -A DOCKER-ISOLATION-STAGE-2 -o br-a593dce43362 -j DROP
[0:0] -A DOCKER-ISOLATION-STAGE-2 -j RETURN
[3:673] -A DOCKER-USER -j RETURN
COMMIT
# Completed on Tue Apr 16 20:35:55 2024
# Generated by iptables-save v1.8.7 on Tue Apr 16 20:35:55 2024
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:DOCKER - [0:0]
[3:1090] -A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
[778:52788] -A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
[0:0] -A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE
[0:0] -A POSTROUTING -s 172.23.0.0/16 ! -o br-dafd9fc1c73f -j MASQUERADE
[0:0] -A POSTROUTING -s 192.168.240.0/20 ! -o br-46e81cf5fb5e -j MASQUERADE
[0:0] -A POSTROUTING -s 192.168.49.0/24 ! -o br-3864e73fa63c -j MASQUERADE
[0:0] -A POSTROUTING -s 172.24.0.0/16 ! -o br-8166f1f24274 -j MASQUERADE
[0:0] -A POSTROUTING -s 172.22.0.0/16 ! -o br-604867f1852d -j MASQUERADE
[2202:192320] -A POSTROUTING -s 192.168.0.0/20 ! -o br-4ca8610e3d72 -j MASQUERADE
[0:0] -A POSTROUTING -s 172.31.0.0/16 ! -o br-1db02a26bdd0 -j MASQUERADE
[0:0] -A POSTROUTING -s 172.21.0.0/16 ! -o br-a28feae6b83c -j MASQUERADE
[0:0] -A POSTROUTING -s 172.26.0.0/16 ! -o br-9346c9dd9a25 -j MASQUERADE
[0:0] -A POSTROUTING -s 172.27.0.0/16 ! -o br-4e168a0cdf31 -j MASQUERADE
[0:0] -A POSTROUTING -s 172.19.0.0/16 ! -o br-4d363be4b599 -j MASQUERADE
[0:0] -A POSTROUTING -s 172.25.0.0/16 ! -o br-3a165a5c993a -j MASQUERADE
[0:0] -A POSTROUTING -s 172.30.0.0/16 ! -o br-35b3c8def3c9 -j MASQUERADE
[0:0] -A POSTROUTING -s 172.28.0.0/16 ! -o br-fd59d8ed402b -j MASQUERADE
[631:65752] -A POSTROUTING -s 172.20.0.0/16 ! -o br-f2e659a6d01a -j MASQUERADE
[0:0] -A POSTROUTING -s 172.29.0.0/16 ! -o br-c8d5ce7ce6c1 -j MASQUERADE
[0:0] -A POSTROUTING -s 192.168.16.0/20 ! -o br-c77e5c8b1ce6 -j MASQUERADE
[0:0] -A POSTROUTING -s 172.18.0.0/16 ! -o br-a593dce43362 -j MASQUERADE
[0:0] -A DOCKER -i docker0 -j RETURN
[0:0] -A DOCKER -i br-dafd9fc1c73f -j RETURN
[0:0] -A DOCKER -i br-46e81cf5fb5e -j RETURN
[0:0] -A DOCKER -i br-3864e73fa63c -j RETURN
[0:0] -A DOCKER -i br-8166f1f24274 -j RETURN
[0:0] -A DOCKER -i br-604867f1852d -j RETURN
[0:0] -A DOCKER -i br-4ca8610e3d72 -j RETURN
[0:0] -A DOCKER -i br-1db02a26bdd0 -j RETURN
[0:0] -A DOCKER -i br-a28feae6b83c -j RETURN
[0:0] -A DOCKER -i br-9346c9dd9a25 -j RETURN
[0:0] -A DOCKER -i br-4e168a0cdf31 -j RETURN
[0:0] -A DOCKER -i br-4d363be4b599 -j RETURN
[0:0] -A DOCKER -i br-3a165a5c993a -j RETURN
[0:0] -A DOCKER -i br-35b3c8def3c9 -j RETURN
[0:0] -A DOCKER -i br-fd59d8ed402b -j RETURN
[0:0] -A DOCKER -i br-f2e659a6d01a -j RETURN
[0:0] -A DOCKER -i br-c8d5ce7ce6c1 -j RETURN
[0:0] -A DOCKER -i br-c77e5c8b1ce6 -j RETURN
[0:0] -A DOCKER -i br-a593dce43362 -j RETURN
COMMIT
# Completed on Tue Apr 16 20:35:55 2024
以下所有内容均引用自此处的datetime
行。我已经打破了引用以对我的理解进行评论。
通过使用两个 4 字节整数来使用整数数据表示。整数值表示以 1900-01-01 为基准日期的天数。
换句话说,我们有八个字节可以使用。datetime
这与已经占用的内容完全相同。
前 2 个字节最多可以代表 2079 年。在此之前,压缩始终可以在此处保存 2 个字节。
换句话说,到 2079 年为止,年份都会丢失两个字节。在那之后,我们会失去更多。这意味着对于 2079 年之前的日期,我们可以使用原始八个字节中的六个。
每个整数值代表 3.33 毫秒。压缩在前五分钟内耗尽了前 2 个字节 [原文如此],并在下午 4 点后需要第四个字节。
换句话说,下午 4 点之后,我们只剩下剩余的 6 个字节中的两个可以使用。
因此,下午 4 点之后压缩只能节省 1 个字节。
这显然是我误解的部分。我之前的算术证明我们还剩两个轮空。然而,微软表示我们只有一个。这是双重令人困惑的,因为如果我们超过了 2079 年,那么微软的数字就会认为我们还剩下负 1 个字节。
当日期时间像任何其他整数一样被压缩时,压缩会在日期中节省 2 个字节。
用户无法控制压缩的工作方式,因此这一行完全无关。
从上面的内容可以看出,我的理解存在很大的误区。我错过了什么?
压缩不会影响备份和恢复。
但这怎么可能呢?当然,如果我的表较小(由于压缩),那么这应该会对备份/恢复产生一些影响?如果我的表较小,那么加载速度应该更快。如果我的表需要一些解压,那么这应该会花费更长的时间。不管怎样,我就是不敢相信数据压缩对备份和恢复完全没有任何作用。
我缺少什么?
我有一张桌子,我相信它的大小大部分归功于一根巨大的NVARCHAR(max)
柱子。我不知道如何测试它的大部分大小来自哪里。无论如何,这样的表会受益于行压缩吗?或者NVARCHAR(max)
已经以可变长度的方式保证行压缩不执行任何操作?
是否可以让不同的用户访问我的只读副本数据库?这实际上不是只读副本的一个流行用例吗?我希望一组有限的凭据能够访问我的主读写数据库,然后我希望其他人能够对只读副本进行只读访问以进行报告、临时查询等我不一定希望两个数据库具有完全相同的访问器。
我在托管只读副本的服务器上创建了 Microsoft Entra 登录名,但以下是当我尝试创建用于数据库访问的用户时得到的结果。
Msg 3906, Level 16, State 2, Line 1
Failed to update database "********" because the database is read-only.
嗯,当然数据库是只读的,它是我的只读副本。但我并不是尝试将数据写入数据库,只是为组织中允许访问只读副本的人员设置元安全详细信息。这不能做吗?
我使用此代码进行批量插入
BULK INSERT [Table]
FROM 'D:\phones.txt'
WITH
(
ROWTERMINATOR = '0x0a'
)
我的数据只有一列 10 个字符
例如
| 1234567890 |
| 1234567891 |
| 1234567892 |
保存到数据库后,通过运行以下代码,可以更加显示数据的长度
SELECT TOP (1)
[Phone]
,LEN([Phone]) AS Phonelength
FROM [Table]
结果
电话 | 电话长度 |
---|---|
1234567891 | 11 |
添加到字段末尾的额外字符是新行
为什么要添加新行?